From 9d7ea0b3c0a760bd2229f905180052a97f117890 Mon Sep 17 00:00:00 2001 From: ludamad Date: Mon, 29 May 2023 10:31:22 -0400 Subject: [PATCH] Merge master (#2) * Added dynamic array abstraction into standard library (#112) Implements RAM/ROM stuff and dynamic arrays as well as separated all fixed_base operation in standard plonk into a separate file, so that it is no longer part of composer * fix: Store lagrange forms of selector polys w/ Ultra (#255) * store lagrange forms of selector polynomials when serializing pk for Ultra * added comment to ultra_selector_properties * feat(ts): allow passing srs via env functions (#260) * feat(ts): switch to node-modules linker * feat(ts): add new env for SRS objects * feat(ts): test srs bindings * fix: proper uint8_t include * feat(ts): revert unneeded changes * feat(ts): revert unneeded changes * feat(ts): unify writeMemory arg order * Update barretenberg_wasm.ts * feat(ts): fix srs comments * Update data_store.hpp --------- Co-authored-by: Adam Domurad * Lde/transcript (#248) * adding adrians new transcript classes * tests added for transcript and new manifest concept --------- Co-authored-by: codygunton * fix(build): git add -f .yalc (#265) * feat(ts): switch to node-modules linker * feat(ts): add new env for SRS objects * feat(ts): test srs bindings * fix: proper uint8_t include * feat(ts): revert unneeded changes * feat(ts): revert unneeded changes * feat(ts): unify writeMemory arg order * Update barretenberg_wasm.ts * feat(ts): fix srs comments * Fix deps * Fix comments * fix(build): git add -f .yalc * Merge --------- Co-authored-by: Adam Domurad * chore: modularize bb (#271) * chore: modularize ts * chore: reformat * Adding foundation to bb.js (#274) * cleaning up bb.js deps * update bb structure to use workspaces * remove foundation .yarn/cache * chore: don't bundle .yalc * Update readme * chore: modularize bb (#271) * chore: modularize ts * chore: reformat * merge * remove yalc * Unbundle tsbuildinfo --------- Co-authored-by: ludamad Co-authored-by: ludamad * Fix build of ts package (#276) * Splitting turbo composer (#266) * Turbo Circuit Constructor working * Turbo!! And also fixed some of the fuzzer compilation issues * Luke: Addressing my own comments and adding minor TODOs where necessary --------- Co-authored-by: ledwards2225 * Cg/move to shared (#294) * Move circuit constructors to shared. * Move helper lib and perm helper. * Move tmp composers and helpers for plonk. * Fix namespace and red herring comment. * Remove pointless namespace declaration. * Fix more namespaces. * Split flavor * Rename tests to avoid ambiguity. * Remove redundant macro defs. * Fix comment formatting. * StandardArithmetization is not shared with plonk. * Lde/split gemini (#256) * adding adrians new transcript classes * building with some failing tests * tests passing * tests added for transcript and new manifest concept * improvements to the manifest concept * prover now operating on split gemini fuctionality * make shplonk test independent of Gemini * gemini and kzg tests updated; reduce prove removed from gemini * general cleanup * woops, fix gcc build * minor rebase fix * make gemini method return fold polys per Adrians suggestion * fix bad move * Lde/lookup grand product (#286) * moving perm grand product to prover lib and fleshing out lookup grand product * cleaning up perm grand product test * lookup grand product test in place * cleaning up lookup grand prod test and adding sorted list accum method and test * rename prover tests to prover library tests * general cleanup * improve naming for gamma and beta constants * rabse fix * Cg/arithmetization (#296) * Move gate data to better location. * Add basic arithmetization class. * CircuitConstructor takes Arithmetization. * Remove FooSelector enums from split composers. * feat: Working UltraPlonk for Noir (#299) * Make dsl composer agnostic. * change SYSTEM_COMPOSER under stdlib::types to ultra composer type * use ultra logic constraints * in process of debugging, move to using ultra logic constraints * add get_total_circuit_size method * acir format tests showing failures with range constraints of different bit sizes * remove unnecessary comment * (fix) Temporarily add a redundant add-gate for variables that need range constraint < 8 bits. * rename functions * Implement get_solidity_verifier function * Fix no longer available properties * remove constraint system * logic gate changes using plookup * logic gate debugging * test for logic gates passing * last debug things XOR and AND returnign correct results, XOR still failing * cleanup * pedersen_plookup * plookup funcs * add to header * fixed error in pedersen hash when RHS is a circuit constant * added ACIR test for XOR gate pedersen hash test now checks y coordinate * temp disable wasm-opt * Making everything compile with any composer & add a cmake flag to switch on turbo * enable wasm-opt for asyncify but disable optimizations * remove using in header * fixed work queue bug with wasm wasm code path was not correctly storing fft outputs in proving key * added bitwise logic operations into stdlib stdlib method is utility method to provide Composer-agnostic interface due to the use of plookup tables if enabled * updated acir_format to use new stdlib logic class Updated ReadMe to include wasm example that supports gtest filtering * reenable tests * linting fixes * disable binaryen with comment * write instead of read * remove random * WIP * cleanup the debug logging * restore the randomness * only add a zero/one test instead of replacing * remove unused change * changes to make solgen work correctly in bindings * fix join_split_tests.test_deposit_construct_proof * working serialized proving key size and circuit change test for ultra (#307) * USE_TURBO for join_split * Empty-Commit * Don't default one function; tweak comments. * Empty-Commit --------- Co-authored-by: Suyash Bagad Co-authored-by: vezenovm Co-authored-by: Maxim Vezenov Co-authored-by: zac-williamson Co-authored-by: kevaundray Co-authored-by: codygunton * Add debugging CMake preset & update code-workspace (#308) * Add debugging CMake preset & update code-workspace --------- Co-authored-by: Blaine Bublitz * Lde/ultra composer (#302) * duplicate ultra composer with tests passing * instantiating a circuit constructor in composer but not using it yet * directory updates after rebase plus finalize circuit function added * WiP almost have composer helper proving key computation building * WiP still debugging linker error * linker issue seemingly resolved * create prover building and running with new composer * proving key polys match old composer for simple circuit * circuit with no lookups is verifying * all composer tests passing with split ultra composer * kill poly store debug code * cleanup * fix arithmetization rebase issues * WiP new test * fix bad circuit size bug * cleanup * fix(nix): Use wasi-sdk 12 to provide barretenberg-wasm in overlay (#315) * fix(nix): Use wasi-sdk 12 to provide barretenberg-wasm in overlay * chore: Remove the wasm stuff from main package * chore(nix): Switch the default llvm to 11 * chore(nix): Add transcript00 to the overlay chore(nix): Cleanup for nix flake check * Use hash for each platform * avoid symlinks * try wasi-sdk that someone wrote on github * fix hash for linux * try to ignore libstdc++ * need the whole name * try to include std lib instead of ignore * cleanup and nix flake check * chore(ci): Check the nix flake in CI * run default build instead of llvm12 * Prep: move composer type, proving key and verification key. (#303) * Move composer type from plonk to bonk. * Move pk & vk into plonk. * bonk ~> proof_system; nest plonk and honk in it. * proof_system independent of plonk. * fix(dsl): Use info instead of std::cout to log (#323) * fix(dsl): Use info instead of std::cout to log * Empty-Commit --------- Co-authored-by: Maxim Vezenov * fix(nix): Disable ASM & ADX when building in Nix (#327) * fix(nix): Disable ASM & ADX when building in Nix * Empty-Commit --------- Co-authored-by: kevaundray * Aztec3 Specific Work in Barretenberg (#142) * Split Pedersen Hash & Commitment Gadgets (#95) * [SQUASHED] Pedersen refactor into hash and commitment. Use lookup pedersen for merkle tree, fixed-base pedersen for commitments. --------- Co-authored-by: Suyash Bagad Port `copy_as_new_witness`. Port `must_imply`. `operator++`. Port changes from `common`. Port `ecc/groups`. * [CPM] add missing dependencies to libbarretenberg.a (#154) --------- * Increase Pedersen Generator indices and subindices. (#169) * Remove a3 specific types. (#252) * Address Luke's Comments on `aztec3 -> master` (#263) * Add must_imply tests. * Added a test for `field_t::copy_as_new_witness` * add test for `conditional_assign` * Added `infinity` test. * Add `add_affine_test`. * Tests for Array Object in `stdlib` (#262) * basic array tests. * Add `composer_type` while hashing/compressing a vkey. * Add `contains_recursive_proof` to Recursive VK (#268) * feat: debug utility for serialization (#290) * feat: enable asan config * `array_push` for Generic Type (#291) * Add Indexed Merkle Tree (#281) * remove ts (consulted with Adam and we're good to go). (#292) * Add cout for verification_key struct (#295) * compute tree (#298) * [SQUASHED] fixing `push_array_to_array` method. (#304) * feat(memory_tree|a3): add sibling path calculations (#301) * feat(memory_tree): frontier paths * fix array and resolve merge conflicts (#305) * Mc/hash vk (#306) * Increase number of sub-generators to 128. * Build a3crypto.wasm (#311) * More Tests on A3 `stdlib` methods (#316) * test: more vk tests to compare circuit/native/vk_data (#310) * Mc/hash vk (#306) * inc num_generators_per_hash_index to 128. (#309) * fix. (#318) * Added test for `compute_tree_native`. (#319) * Install instructions for apt on ubuntu (#312) * Fix address compilation. (#329) --------- Co-authored-by: David Banks <47112877+dbanks12@users.noreply.github.com> Co-authored-by: Michael Connor Co-authored-by: dbanks12 Co-authored-by: Santiago Palladino Co-authored-by: ludamad Co-authored-by: Maddiaa <47148561+cheethas@users.noreply.github.com> Co-authored-by: Santiago Palladino Co-authored-by: ludamad Co-authored-by: cheethas * Split shplonk in prep for work queue (#321) * Consolidate permutation mapping computation into one method (#330) * Lde/reinstate work queue (#324) * make MSM size in work queue more flexible * new work queue hooked up everywhere excluding shplonk * improve interface and remove commitment key from prover * move old work queue to plonk namespace * fix(cmake): Remove leveldb dependency that was accidentally re-added (#335) * fix(cmake): Remove leveldb dep d that was accidentally re-added * Empty-Commit --------- Co-authored-by: kevaundray * change to get_num_gates() inside get_total_circuit_size() (#332) * Mm/ensure all stdlib_primitives_tests are run using all four composers * UltraHonk Composer (Split) (#339) * add split UltraHonk composer and checks for consistency with UltraPlonk * adding issue number to some TODOs * fix: Revert generator changes that cause memory OOB access (#338) * fix: Revert generator changes that cause memory OOB access * Empty-Commit * Fix cci (temporarily). * comment out one more test. --------- Co-authored-by: kevaundray Co-authored-by: Suyash Bagad * doc: Document more thoroughly why fields don't 0-init (#349) * Update field.hpp * Update field.hpp * Update field.hpp * 32-Byte Keccak256 challenges for UltraPlonK (#350) * Add WithKeccak variants. * Update SYSTEM_COMPOSER dependents. * Ultra Honk arithmetic and grand product relations (#351) * add width 4 perm grand prod construction relation * make grand prod construction use id polys, relation correctness passing * reorganize relation testing suites * primary ultra arithmetic relation with passing tests * secondary arith relation and grand prod init relation plus tests * add modified consistency check for selectors (#354) * No `SYSTEM_COMPOSER` (#352) * Get rid of system composer. * Remove USE_TURBO * Lde/lookup grand prod relation (#359) * lookup grand product relation tests passing * ignore final entry in table polys for consistency chec, same reason as for selectors * adding eta and lookup gp delta to relation params * incorporate lookup gp init relation into tests * correcting the degree of lookup relation * fixed bug where range constraining connected witnesses threw an error (#369) * fixed bug where range constraining connected witnesses threw an error * can now apply multiple overlapping ranges to the same witness (or copies of the witness) --------- Co-authored-by: codygunton * Add Mutex to global initialisation of generators (#371) * Mutex lock initialization call * add comment on mutex --------- Co-authored-by: kevaundray * chore: Add cachix action for uploading binary cache artifacts (#373) * chore: Add cachix action for uploading binary cache artifacts * Only run the nix action on master * run on my branch and remove todos * Remove running on my branch * Zw/recursion constraint reduction (#377) * removed blake3s hash from ultraplonk recursive prover * UltraComposer will now not create duplicate non-native field multiplication constraints * Propagate new stuff to Honk and splitting_tmp. * Clean up and add comments. --------- Co-authored-by: codygunton * add constraints to ensure that the result of the logic constraint is indeed produced from the left and right operands of the functions and improve testings. * fixed error where applying copy constraints to range-constrained indices would create an unbalanced set membership check * improve documentation and fix issue in non-ultra variants of the composer * [SQUASHED] ecdsa key recovery with test(s). (#346) init commit. Recover pubkey works! Make gcc happy. Make gcc happy (again) gcc fix. don't use y = 0 as error condition. instead use (x = 0, y = 0) as failure return. * feat(nullifier_tree): make empty nullifier tree leaves hash be 0 (#360) (#382) * feat(nullifier_tree): make empty nullifier tree leaves be 0 * fix: add append zero behaviour and test * fix: explicit type name * clean: update class semantics --------- Co-authored-by: Maddiaa <47148561+cheethas@users.noreply.github.com> Co-authored-by: cheethas Co-authored-by: cheethas * Solidity Ultra Verifier with tests (#363) * initial setup * feat: add test setup * fix: revert unneeded cmakelist changes + typos * fix: solidity helper binaries in docker * chore: Use `-assert` variant instead of plain * chore: config.yml missing whitespace * fix: alpine base dockerfile * chore: add sol to build_manifest * Dockerfile: add string utils * fix: use different base, add bash * chore: remove stale misc * circle-ci fiddling * more circle fiddling * fiddle * Circle-ci fiddling for verifiers (#365) * build_manifest update * fiddling * fiddling * skip ensure_repo * skipping more stuff * fiddling * get docker version * force change in key_gen * fiddle * docker version in cond_spot * fiddle * update path * fiddle * build in init * fiddle * fiddle * fiddle * fiddle * alpine * package naming * add apt-repository * add apt rep key * lld-15 * fiddle with docker * chore: cleanups * chore: remove log --------- Co-authored-by: cheethas * fix: throw -> throw_or_abort in sol gen (#388) * fix: throw -> throw_or_abort in sol gen * toggle nix build * fix: toggle nix build * chore: revert toggle --------- Co-authored-by: cheethas * feat!: replace `MerkleMembershipConstraint` with`ComputeMerkleRootConstraint` (#385) * feat: replace `MerkleMembershipConstraint` with`ComputeMerkleRootConstraint` * Update acir_format.cpp * Ultraplonk check_circuit (#366) * Add check_circuit with mid-construction introspection * updating IPA to use transcript (#367) * hack: introduce BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK (#409) * hack: introduce BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK * doc: concise * Update generator_data.cpp * Update generator_data.cpp * Add Keccak constraints to acir_format (#393) * exp: fix alpine versioning (#415) Co-authored-by: cheethas * Small change that was left out of construct_addition_chains fix (#404) Fixes the intermittent construct_addition_chains bugs (the previous fix was incomplete) and cleans the test up a bit * Pending bb work for aztec3 (#368) * update js vk (because we now use UP for merkle hashing) * Helpers for ECDSA in A3 (#364) * Add `stdlib_keccak` in cmake. Correct an assertion in `to_byte_array` in bigfield. * Add `random_element` to affine element. * negate y conditionally. * Change pedersen hash c_bind to use `pedersen_hash::lookup`. * c_binds and other ECDSA related fixes (#407) * Add v to stdlib ecdsa. * create an engine if its empty. * Add ecdsa c_bind. * print v as a uint32. * Add secp256k1 cbind. add c_bind.hpp Change hpp to h. remove hpp. * Add ecdsa in cmakelists. remove stdlib_ecdsa from build. * chore: align BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK usage (#411) * Update join_split test * Tweaks to comments * Add comment for the assertion in bigfield. * Expanded on ecdsa comment. --------- Co-authored-by: ludamad Co-authored-by: ludamad Co-authored-by: codygunton * feat: CI to test aztec circuits with current commit of bberg (#418) * More generators for aztec3. * update js vk (because we now use UP for merkle hashing) * Helpers for ECDSA in A3 (#364) * Add `stdlib_keccak` in cmake. Correct an assertion in `to_byte_array` in bigfield. * Add `random_element` to affine element. * negate y conditionally. * Change pedersen hash c_bind to use `pedersen_hash::lookup`. * c_binds and other ECDSA related fixes (#407) * Add v to stdlib ecdsa. * create an engine if its empty. * Add ecdsa c_bind. * print v as a uint32. * Add secp256k1 cbind. add c_bind.hpp Change hpp to h. remove hpp. * Add ecdsa in cmakelists. remove stdlib_ecdsa from build. * hack: (aztec3) introduce barretenberg crypto generator parameters hack (#408) * hack: introduce BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK * doc: concise * chore: align BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK usage * CI to test aztec circuits with current commit of bberg * build manifest * chore: align BARRETENBERG_CRYPTO_GENERATOR_PARAMETERS_HACK usage (#411) * try other branch of aztec packages * ci rename script * Update join_split test * bump aztec version and merge in aztec3-temporary fixes * aztec commit switched to branch * bump aztec commit and document * typo README.md * Update README.md --------- Co-authored-by: Suyash Bagad Co-authored-by: Suyash Bagad Co-authored-by: ludamad Co-authored-by: ludamad * chore: use build-system submodule (#419) * attempt to remove old CI files and replace with build-system submodule * project and version files for CCI * slack orb context * slack bberg channel (#422) * Cg/flavor (#326) - Introducing the flavor classes (mainly honk, splash of plonk) --------- Co-authored-by: ledwards2225 * Add external benchmarks (#401) Adds an external_bench file with benchmarks we use for external benchmarking projects * Reduce occurence of using namespace syntax in header files (#387) Co-authored-by: maramihali * ensure all operand sizes are tested (#432) Co-authored-by: maramihali * Add ECDSA test for ACIR and fix (#435) --------- Co-authored-by: zac-williamson * chore(ci): Add Noir CI that runs with a github label (#430) * Adds prehashed message variant of EcDSA (#437) * verification takes a pre-hashed message : Note: if len(hash) > 32 bytes, then bigfield will fail * use hashed_message when generating signature * modify acir structure and function to now use prehashed variant * message -> hashed_message * Ultra Honk (#412) * DSL: Add valid dummy data for ecdsa constraints when verifier is creating circuit (#438) * Add way to make verifiers data valid by replacing zeroes with valid public keys and signatures Co-authored-by: Zachary James Williamson * Update cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.test.cpp * replace templates with concrete methods * add comment * PR review * add comments * change to use boolean flag, so dummy_ecdsa method lives in ecdsa * ad true as default --------- Co-authored-by: Zachary James Williamson * chore(ci): Add explicit ref for Noir checkout (#440) * feat!: add support for ROM and RAM ACVM opcodes (#417) * *WIP* do not push * Generate constraints for dynamic memory * fix unit test: add missing block_constraint * add unit test for dynamic memory * missed one block constraint in ecdsa unit test * trying a rebase * remove comments * fix the build (#442) * msgpack: initial support for friendly binary serialization format (#374) * Regenerate pedersen lookup tables if they're empty * re-init generator tables if they're empty. * feat(nullifier_tree): make empty nullifier tree leaves hash be 0 (#360) * feat(nullifier_tree): make empty nullifier tree leaves be 0 * fix: add append zero behaviour and test * fix: explicit type name * clean: update class semantics --------- Co-authored-by: cheethas Co-authored-by: cheethas * More generators for aztec3. * update js vk (because we now use UP for merkle hashing) * Helpers for ECDSA in A3 (#364) * Add `stdlib_keccak` in cmake. Correct an assertion in `to_byte_array` in bigfield. * Add `random_element` to affine element. * negate y conditionally. * feat(nullifier_tree): make empty nullifier tree leaves hash be 0 (#360) * feat(nullifier_tree): make empty nullifier tree leaves be 0 * fix: add append zero behaviour and test * fix: explicit type name * clean: update class semantics --------- Co-authored-by: cheethas Co-authored-by: cheethas * Change pedersen hash c_bind to use `pedersen_hash::lookup`. * feat: add msgpack-c submodule * Give up on msgpack c_master * Working hacky msgpack test * Interim work * Interim work * Getting rid of memory hacks * fix: memory leaks * Start of demoing cbinds * Align with other methods * chore: Remove need to return from msgpack method * Iterate example * fix: Hack around generator issues * feat: iterate on msgpack in bb * fix: fork msgpack for greater checks * Refactor * cleanup * Update turbo_circuit_constructor.cpp * chore: continued cleanup * chore: continued cleanup * chore: continued cleanup * Refactor * Refactor * fix: ci * feat(wasm): hacks to make work in a fno-exceptions wasm environment * feat(wasm): bump msgpack-c * feat(msgpack): first 'complex' object bound * More wasm fixes. Was breaking throw() declaration * Fix field serialization * refactoring * Update CMakeLists.txt * Remove // TODO redundant with msgpack * Refactor to use macro * Refactor to use macro * fix printing bug * fix: fieldd msgpack endianness fix * fix: remove shared ptr reference * doc * Add static checking for MSGPACK usage * Revert log.hpp change * Update struct_map_impl.hpp * Revert * remote_build fix * Keep trying to init submodules * Keep trying to init submodules * Bump * Add missing init_submodules * Msgpack test fix * Msgpack test fix * Msgpack test fix * Msgpack test fix * Update polynomial_store.test.cpp * Merge master * Update msgpack error * Better abort distinguishing * fix: join split VK hash * Serialization updates * Fix circuits build * Try to make circuits test work again * Try to make circuits test work again * Try to make circuits test work again * fix: initialization warning * fix: prefer default constructor for field, related cleanup * Grand rename * chore: remove unused funcs * Revert fields constructor change for now * chore: Revert .circleci changes * chore: Revert foundation removal * Revert .gitmodules * Update affine_element.hpp * Update element.hpp * Revert header optimizations * Revert init line * Update polynomial_store.test.cpp * Revert header optimization * Update raw_pointer.hpp * Update raw_pointer.hpp * Update func_traits.hpp documentation * Document msgpack methods in field_impl.hpp * Update msgpack.hpp * Update cbind.hpp * Update msgpack.hpp * Update msgpack.hpp * Update schema_impl.hpp * Update g1.hpp --------- Co-authored-by: Suyash Bagad Co-authored-by: Maddiaa <47148561+cheethas@users.noreply.github.com> Co-authored-by: cheethas Co-authored-by: cheethas Co-authored-by: Suyash Bagad * Zw/noir recursion 2 (#414) * removed redundant `reduce` operations after negating biggroup elements simplified hash input structure when hashing transcripts cached partial non native field multiplications reverted how native transcript computes hash buffers pedersen_plookup can be configured to skip the hash_single range check under limited conditions fixed the range check in pedersen_plookup::hash_single pedersen_plookup::hash_single now validates the low and high scalar slice values match the original scalar bigfield::operator- now correctly uses the UltraPlonk code path if able to added biggroup::multiple_montgomery_ladder to reduce required field multiplications added biggroup::quadruple_and_add to reduce required field multiplications biggroup_nafs now directly calls the Composer range constraint methods to avoid creating redundant arithmetic gates when using the PlookupComposer biggroup plookup ROM tables now track the maximum size of any field element recovered from the table (i.e. the maximum of the input maximum sizes) biggroup batch tables prefer to create size-6 lookup tables if doing so reduces the number of individual tables required for a given MSM recursion::transcript no longer performs redundant range constraints when adding buffer elements recursion::transcript correctly checks that, when slicing field elements , the slice values are correct over the integers (i.e. slice_sum != original + p) recursion::verification_key now optimally packs key data into minimum required number of field elements before hashing recursion::verifier proof and key data is now correctly extracted from the transcript/key instead of being generated directly as witnesses. cleaned up code + comments code tidy, added more comments cleaned up how aggregation object handles public inputs native verification_key::compress matches circuit output fixed compile errors + failing tests compiler error join_split.test.cpp passing Note: not changing any upstream .js verification keys. I don't think we need to as bberg is now decoupled from aztec connect * compiler fix * more compiler fix * attempt to fix .js and .sol tests * revert keccak transcript to original functionality * added hash_index back into verification_key::compress fixed composer bug where `decompose_into_default_range` was sometimes not range-constraining last limb removed commented-out code added more descriptive comments to PedersenPreimageBuilder * changed join-split vkey * temporarily point to branch of aztec that updates aggregation state usage until fix is in aztec master * revert .aztec-packages-commit * header brittleness fix * compiler fix * compiler fix w. aggregation object * reverting changes to `assign_object_to_proof_outputs` to preserve backwards-compatibility with a3-packages * more backwards compatibility fixes * wip --------- Co-authored-by: dbanks12 Co-authored-by: David Banks <47112877+dbanks12@users.noreply.github.com> * Chore: bundle msgpack to fix nix-build (#450) * Revert msgpack submodule * Bundle msgpack to avoid issues with submodules * variable-length keccak (#441) * updated stdlib::keccak to be able to hash variable-length inputs (where input size not known at circuit-compile time, only a maximum possible input size) * compile error * compile fils * compiler fix * more fix * compiler fix * compile fix * Update cpp/src/barretenberg/stdlib/hash/keccak/keccak.test.cpp Co-authored-by: kevaundray * Update cpp/src/barretenberg/stdlib/hash/keccak/keccak.test.cpp Co-authored-by: kevaundray * Update cpp/src/barretenberg/stdlib/hash/keccak/keccak.test.cpp Co-authored-by: kevaundray * Update cpp/src/barretenberg/stdlib/hash/keccak/keccak.test.cpp Co-authored-by: kevaundray * Update cpp/src/barretenberg/stdlib/primitives/field/field.test.cpp Co-authored-by: kevaundray * improved readability of stdlib test * replaced magic numbers in keccak with constants + comments --------- Co-authored-by: kevaundray * chore: disable circuits tests in master (#454) * fix: msgpack error (#456) * Add missing `hash_index` while compressing vk. (#457) * Add missing `hash_index` while compressing vk. * comment back vk tests with hash index > 0. * Adam/fix allow explicit field init (#460) * fix: msgpack error * fix: allow explicit field init * fix: msgpack variant_impl.hpp (#462) Previous version accidentally created a packer> * fix: bbmalloc linker error (#459) * format msgpack serialization and excldue msgpack-c from clang-format (#467) * patch: temporarily remove broken solidity ci (#470) * Sumcheck improvements (#455) * convert partially evaluated polynomials from vectors to Polynomials and rename * rename fold method to partially_evaluate * static constexpr barycentric arrays * change purported evaluations to claimed evaluations * specify relations in Flavor * Fixed a bug in biggroup tests (#478) * DSL: Add KeccakVar opcode (#476) * add initial KeccakVar code * add result field * add keccak_var_constraints to fields * Multi-constraint Relations (#444) Allow for correct and efficient batching over identities in the Sumcheck relation --------- Co-authored-by: Zachary James Williamson Co-authored-by: Maxim Vezenov Co-authored-by: Adam Domurad Co-authored-by: ledwards2225 <98505400+ledwards2225@users.noreply.github.com> Co-authored-by: codygunton Co-authored-by: spypsy Co-authored-by: Santiago Palladino Co-authored-by: Innokentii Sennovskii Co-authored-by: ledwards2225 Co-authored-by: Blaine Bublitz Co-authored-by: Suyash Bagad Co-authored-by: Maxim Vezenov Co-authored-by: kevaundray Co-authored-by: Suyash Bagad Co-authored-by: David Banks <47112877+dbanks12@users.noreply.github.com> Co-authored-by: Michael Connor Co-authored-by: dbanks12 Co-authored-by: Maddiaa <47148561+cheethas@users.noreply.github.com> Co-authored-by: Santiago Palladino Co-authored-by: cheethas Co-authored-by: maramihali Co-authored-by: Max Hora Co-authored-by: cheethas Co-authored-by: Lasse Herskind <16536249+LHerskind@users.noreply.github.com> Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com> Co-authored-by: guipublic <47281315+guipublic@users.noreply.github.com> Co-authored-by: maramihali Co-authored-by: Zachary James Williamson Co-authored-by: Maddiaa <47148561+Maddiaa0@users.noreply.github.com> --- .circleci/bin/jq | Bin 30872 -> 0 bytes .circleci/build | 132 - .circleci/build_local | 58 - .circleci/changed | 10 - .circleci/check_rebuild | 29 - .circleci/cond_spot_run_build | 24 - .circleci/cond_spot_run_script | 31 - ...ot_run_tests => cond_spot_run_test_script} | 7 +- .circleci/config.yml | 144 +- .circleci/ensure_repo | 38 - .circleci/ensure_terraform | 12 - .circleci/erase_image_tags | 21 - .circleci/image_exists | 2 - .circleci/last_successful_commit | 18 - .circleci/lib/libjq.so.1 | Bin 309504 -> 0 bytes .circleci/lib/libonig.so.5 | Bin 580832 -> 0 bytes .circleci/query_manifest | 39 - .circleci/remote/32core.json | 14 - .circleci/remote/64core.json | 14 - .circleci/remote/ssh_config | 3 - .circleci/remote_build/remote_build | 27 - .circleci/remote_run_script | 17 - .circleci/request_spot | 63 - .circleci/setup_env | 98 - .circleci/spot_run_script | 22 - .circleci/store_test_benchmark_logs | 36 - .circleci/tag_remote_image | 35 - .circleci/untag_remote_image | 4 - .dockerignore | 8 + .github/workflows/nix.yml | 13 +- .github/workflows/noir.yml | 40 + .gitignore | 6 +- .gitmodules | 15 + .vscode/settings.json | 6 +- .../@yarnpkg/plugin-workspace-tools.cjs | 28 + .yarn/releases/yarn-3.4.1.cjs | 873 + .yarnrc.yml | 7 + PROJECT | 1 + README.md | 32 +- VERSION | 1 + barretenberg-wasm.nix | 35 + barretenberg.code-workspace | 5 + barretenberg.nix | 17 +- build-system | 1 + build_manifest.json | 16 +- cpp/.aztec-packages-commit | 1 + cpp/.clangd | 11 +- cpp/.gitignore | 3 + cpp/CMakeLists.txt | 14 + cpp/CMakePresets.json | 19 + ...e.circuits-wasm-linux-clang-builder-runner | 8 + ...circuits-x86_64-linux-clang-builder-runner | 18 + cpp/dockerfiles/Dockerfile.wasm-linux-clang | 5 +- cpp/dockerfiles/Dockerfile.x86_64-linux-clang | 2 +- .../Dockerfile.x86_64-linux-clang-benchmarks | 23 + cpp/scripts/bb-tests | 13 +- cpp/scripts/run_aztec_circuits_tests | 52 + cpp/scripts/stdlib-tests | 9 + cpp/src/CMakeLists.txt | 89 +- .../benchmark/honk_bench/honk.bench.cpp | 8 +- .../benchmark/pippenger_bench/main.cpp | 2 +- .../benchmark/plonk_bench/plonk.bench.cpp | 6 +- cpp/src/barretenberg/common/container.hpp | 12 + cpp/src/barretenberg/common/fuzzer.hpp | 137 +- cpp/src/barretenberg/common/log.hpp | 27 +- cpp/src/barretenberg/common/map.hpp | 18 +- cpp/src/barretenberg/common/serialize.hpp | 71 +- cpp/src/barretenberg/common/streams.hpp | 25 +- .../barretenberg/common/throw_or_abort.hpp | 4 +- cpp/src/barretenberg/crypto/CMakeLists.txt | 4 +- .../barretenberg/crypto/blake3s/blake3s.hpp | 2 +- cpp/src/barretenberg/crypto/ecdsa/c_bind.cpp | 70 + cpp/src/barretenberg/crypto/ecdsa/c_bind.h | 29 + cpp/src/barretenberg/crypto/ecdsa/ecdsa.hpp | 51 +- .../barretenberg/crypto/ecdsa/ecdsa.test.cpp | 53 +- .../barretenberg/crypto/ecdsa/ecdsa_impl.hpp | 81 + .../crypto/generators/CMakeLists.txt | 1 + .../fixed_base_scalar_mul.hpp | 7 +- .../generator_data.cpp | 69 +- .../generator_data.hpp | 4 +- .../generator_data.test.cpp} | 9 +- cpp/src/barretenberg/crypto/hmac/hmac.hpp | 4 +- .../crypto/pedersen/CMakeLists.txt | 1 - .../barretenberg/crypto/pedersen/pedersen.hpp | 25 - .../crypto/pedersen/pedersen_lookup.test.cpp | 143 - .../crypto/pedersen_commitment/CMakeLists.txt | 1 + .../crypto/pedersen_commitment/c_bind.cpp | 81 + .../c_bind.hpp | 15 +- .../convert_buffer_to_field.hpp | 16 +- .../pedersen.cpp | 48 +- .../crypto/pedersen_commitment/pedersen.hpp | 30 + .../pedersen_commitment/pedersen_lookup.cpp | 147 + .../pedersen_commitment/pedersen_lookup.hpp | 32 + .../pedersen_lookup.test.cpp | 253 + .../sidon_set/sidon_set.hpp | 2 +- .../sidon_set/sidon_set.test.cpp | 2 +- .../crypto/pedersen_hash/CMakeLists.txt | 1 + .../{pedersen => pedersen_hash}/c_bind.cpp | 40 +- .../crypto/pedersen_hash/c_bind.hpp | 28 + .../crypto/pedersen_hash/pedersen.cpp | 73 + .../crypto/pedersen_hash/pedersen.hpp | 15 + .../pedersen_lookup.cpp | 78 +- .../pedersen_lookup.hpp | 31 +- .../crypto/schnorr/CMakeLists.txt | 2 +- .../barretenberg/crypto/schnorr/schnorr.tcc | 6 +- cpp/src/barretenberg/dsl/CMakeLists.txt | 2 +- .../dsl/acir_format/CMakeLists.txt | 3 +- .../dsl/acir_format/acir_format.cpp | 145 +- .../dsl/acir_format/acir_format.hpp | 40 +- .../dsl/acir_format/acir_format.test.cpp | 267 + .../dsl/acir_format/blake2s_constraint.cpp | 7 +- .../dsl/acir_format/blake2s_constraint.hpp | 4 +- .../dsl/acir_format/block_constraint.cpp | 60 + .../dsl/acir_format/block_constraint.hpp | 62 + .../dsl/acir_format/block_constraint.test.cpp | 131 + ...cpp => compute_merkle_root_constraint.cpp} | 28 +- ...hpp => compute_merkle_root_constraint.hpp} | 17 +- .../dsl/acir_format/ecdsa_secp256k1.cpp | 104 +- .../dsl/acir_format/ecdsa_secp256k1.hpp | 18 +- .../dsl/acir_format/ecdsa_secp256k1.test.cpp | 184 + .../dsl/acir_format/fixed_base_scalar_mul.cpp | 5 +- .../dsl/acir_format/fixed_base_scalar_mul.hpp | 4 +- .../dsl/acir_format/hash_to_field.cpp | 9 +- .../dsl/acir_format/hash_to_field.hpp | 4 +- .../dsl/acir_format/keccak_constraint.cpp | 71 + .../dsl/acir_format/keccak_constraint.hpp | 77 + .../dsl/acir_format/logic_constraint.cpp | 22 +- .../dsl/acir_format/logic_constraint.hpp | 12 +- .../barretenberg/dsl/acir_format/pedersen.cpp | 11 +- .../barretenberg/dsl/acir_format/pedersen.hpp | 8 +- .../dsl/acir_format/schnorr_verify.cpp | 18 +- .../dsl/acir_format/schnorr_verify.hpp | 4 +- .../dsl/acir_format/sha256_constraint.cpp | 8 +- .../dsl/acir_format/sha256_constraint.hpp | 8 +- .../CMakeLists.txt | 2 +- .../acir_proofs.cpp} | 93 +- .../dsl/acir_proofs/acir_proofs.hpp | 20 + .../barretenberg/dsl/acir_proofs/c_bind.cpp | 53 + .../barretenberg/dsl/acir_proofs/c_bind.hpp | 25 + .../barretenberg/dsl/turbo_proofs/c_bind.cpp | 43 - .../barretenberg/dsl/turbo_proofs/c_bind.hpp | 24 - .../dsl/turbo_proofs/turbo_proofs.hpp | 18 - cpp/src/barretenberg/dsl/types.hpp | 65 + cpp/src/barretenberg/ecc/curves/bn254/fq.hpp | 8 +- .../barretenberg/ecc/curves/bn254/fq.test.cpp | 7 + cpp/src/barretenberg/ecc/curves/bn254/fr.hpp | 8 +- .../barretenberg/ecc/curves/bn254/fr.test.cpp | 36 + cpp/src/barretenberg/ecc/curves/bn254/g1.hpp | 10 +- .../barretenberg/ecc/curves/bn254/g1.test.cpp | 22 + .../scalar_multiplication.test.cpp | 4 +- .../ecc/curves/secp256k1/c_bind.cpp | 30 + .../ecc/curves/secp256k1/c_bind.hpp | 12 + cpp/src/barretenberg/ecc/curves/types.hpp | 2 +- cpp/src/barretenberg/ecc/fields/field.hpp | 22 +- .../barretenberg/ecc/fields/field_impl.hpp | 54 +- .../ecc/fields/field_impl_x64.hpp | 128 +- .../ecc/groups/affine_element.hpp | 26 + .../ecc/groups/affine_element.test.cpp | 29 + .../ecc/groups/affine_element_impl.hpp | 75 + cpp/src/barretenberg/ecc/groups/element.hpp | 4 +- .../barretenberg/ecc/groups/element_impl.hpp | 10 +- .../ecc/groups/group_impl_asm.tcc | 16 +- cpp/src/barretenberg/ecc/serialize.test.cpp | 9 + cpp/src/barretenberg/env/crs.cpp | 52 + cpp/src/barretenberg/env/crs.hpp | 23 + cpp/src/barretenberg/env/data_store.hpp | 6 +- cpp/src/barretenberg/env/logstr.hpp | 4 +- cpp/src/barretenberg/honk/CMakeLists.txt | 3 +- .../composer_helper/composer_helper_lib.cpp | 217 - .../composer_helper/composer_helper_lib.hpp | 71 - .../standard_honk_composer_helper.cpp | 137 +- .../standard_honk_composer_helper.hpp | 70 +- .../ultra_honk_composer_helper.cpp | 358 + .../ultra_honk_composer_helper.hpp | 74 + .../honk/composer/standard_honk_composer.hpp | 54 +- .../composer/standard_honk_composer.test.cpp | 197 +- .../honk/composer/ultra_honk_composer.hpp | 485 + .../composer/ultra_honk_composer.test.cpp | 867 + .../barretenberg/honk/flavor/flavor.test.cpp | 145 + cpp/src/barretenberg/honk/flavor/standard.hpp | 304 + cpp/src/barretenberg/honk/flavor/ultra.hpp | 392 + cpp/src/barretenberg/honk/oracle/oracle.hpp | 4 +- cpp/src/barretenberg/honk/pcs/claim.hpp | 32 +- .../barretenberg/honk/pcs/commitment_key.hpp | 13 +- .../honk/pcs/commitment_key.test.hpp | 11 +- .../barretenberg/honk/pcs/gemini/gemini.hpp | 209 +- .../honk/pcs/gemini/gemini.test.cpp | 45 +- cpp/src/barretenberg/honk/pcs/ipa/ipa.hpp | 168 +- .../barretenberg/honk/pcs/ipa/ipa.test.cpp | 48 +- cpp/src/barretenberg/honk/pcs/kzg/kzg.hpp | 30 +- .../barretenberg/honk/pcs/kzg/kzg.test.cpp | 100 +- .../barretenberg/honk/pcs/shplonk/shplonk.hpp | 6 +- .../honk/pcs/shplonk/shplonk.test.cpp | 83 +- .../honk/pcs/shplonk/shplonk_single.hpp | 98 +- cpp/src/barretenberg/honk/pcs/wrapper.hpp | 4 +- .../honk/proof_system/composer_helper.lib.hpp | 37 + .../honk/proof_system/program_settings.hpp | 22 - .../barretenberg/honk/proof_system/prover.cpp | 419 +- .../barretenberg/honk/proof_system/prover.hpp | 108 +- .../honk/proof_system/prover.test.cpp | 160 - .../honk/proof_system/prover_library.cpp | 415 + .../honk/proof_system/prover_library.hpp | 30 + .../honk/proof_system/prover_library.test.cpp | 362 + .../honk/proof_system/ultra_prover.cpp | 341 + .../honk/proof_system/ultra_prover.hpp | 84 + .../honk/proof_system/ultra_verifier.cpp | 167 + .../honk/proof_system/ultra_verifier.hpp | 34 + .../honk/proof_system/verifier.cpp | 222 +- .../honk/proof_system/verifier.hpp | 48 +- .../honk/proof_system/verifier.test.cpp | 231 - .../honk/proof_system/work_queue.hpp | 140 + .../sumcheck/polynomials/barycentric_data.hpp | 81 +- .../polynomials/barycentric_data.test.cpp | 2 +- .../polynomials/multivariates.test.cpp | 133 +- .../honk/sumcheck/polynomials/pow.hpp | 4 +- .../honk/sumcheck/polynomials/pow.test.cpp | 6 +- .../honk/sumcheck/polynomials/univariate.hpp | 23 +- .../sumcheck/polynomials/univariate.test.cpp | 2 +- .../relations/arithmetic_relation.hpp | 67 +- .../sumcheck/relations/auxiliary_relation.hpp | 533 + .../sumcheck/relations/elliptic_relation.hpp | 155 + .../relations/gen_perm_sort_relation.hpp | 158 + .../grand_product_computation_relation.hpp | 92 - .../grand_product_initialization_relation.hpp | 48 - .../sumcheck/relations/lookup_relation.hpp | 195 + .../relations/permutation_relation.hpp | 234 + .../honk/sumcheck/relations/relation.hpp | 13 - .../honk/sumcheck/relations/relation.test.cpp | 316 - .../relations/relation_consistency.test.cpp | 294 + .../relations/relation_correctness.test.cpp | 392 + .../relations/relation_parameters.hpp | 18 + .../relations/ultra_arithmetic_relation.hpp | 166 + .../ultra_relation_consistency.test.cpp | 684 + .../barretenberg/honk/sumcheck/sumcheck.hpp | 202 +- .../honk/sumcheck/sumcheck.test.cpp | 565 +- .../honk/sumcheck/sumcheck_output.hpp | 45 + .../honk/sumcheck/sumcheck_round.hpp | 292 +- .../honk/sumcheck/sumcheck_round.test.cpp | 347 +- .../honk/transcript/transcript.hpp | 273 + .../honk/transcript/transcript.test.cpp | 288 + ...lic_inputs.hpp => grand_product_delta.hpp} | 26 +- .../honk/utils/power_polynomial.hpp | 4 +- .../honk/utils/power_polynomial.test.cpp | 4 +- .../proofs/compute_circuit_data.hpp | 42 +- .../inner_proof_data/inner_proof_data.cpp | 2 + .../inner_proof_data/inner_proof_data.hpp | 2 - .../proofs/join_split/CMakeLists.txt | 2 +- .../proofs/join_split/c_bind.cpp | 42 +- .../join_split/compute_circuit_data.cpp | 7 +- .../join_split/compute_circuit_data.hpp | 2 +- .../join_split/compute_signing_data.cpp | 4 +- .../proofs/join_split/join_split.cpp | 39 +- .../proofs/join_split/join_split.hpp | 22 +- .../proofs/join_split/join_split.test.cpp | 29 +- .../proofs/join_split/join_split_circuit.cpp | 22 +- .../proofs/join_split/join_split_circuit.hpp | 13 +- .../join_split/join_split_js_parity.test.cpp | 10 +- .../proofs/join_split/join_split_tx.cpp | 2 +- .../proofs/join_split/join_split_tx.hpp | 8 +- .../proofs/join_split/sign_join_split_tx.cpp | 2 + .../proofs/join_split/sign_join_split_tx.hpp | 6 +- .../proofs/join_split/verify_signature.hpp | 4 +- .../proofs/mock/CMakeLists.txt | 2 +- .../proofs/mock/mock_circuit.hpp | 8 +- .../proofs/mock/mock_circuit.test.cpp | 4 +- .../proofs/notes/CMakeLists.txt | 2 +- .../notes/circuit/account/account_note.hpp | 5 +- .../proofs/notes/circuit/account/commit.hpp | 8 +- .../proofs/notes/circuit/asset_id.cpp | 4 +- .../proofs/notes/circuit/asset_id.hpp | 4 +- .../proofs/notes/circuit/bridge_call_data.hpp | 4 +- .../proofs/notes/circuit/claim/claim_note.hpp | 5 +- .../claim/complete_partial_commitment.hpp | 9 +- .../notes/circuit/claim/compute_nullifier.hpp | 8 +- .../claim/create_partial_commitment.hpp | 9 +- .../notes/circuit/claim/witness_data.hpp | 5 +- .../value/complete_partial_commitment.hpp | 13 +- .../notes/circuit/value/compute_nullifier.cpp | 8 +- .../notes/circuit/value/compute_nullifier.hpp | 5 +- .../circuit/value/compute_nullifier.test.cpp | 6 +- .../value/create_partial_commitment.hpp | 10 +- .../proofs/notes/circuit/value/value_note.hpp | 4 +- .../notes/circuit/value/value_note.test.cpp | 8 +- .../notes/circuit/value/witness_data.hpp | 5 +- .../notes/native/account/account_note.cpp | 6 +- .../notes/native/account/account_note.hpp | 2 +- .../compute_account_alias_hash_nullifier.hpp | 8 +- .../compute_account_public_key_nullifier.hpp | 6 +- .../proofs/notes/native/bridge_call_data.hpp | 2 +- .../proofs/notes/native/claim/claim_note.hpp | 2 +- .../notes/native/claim/claim_note_tx_data.hpp | 2 +- .../claim/complete_partial_commitment.hpp | 6 +- .../notes/native/claim/compute_nullifier.hpp | 6 +- .../claim/create_partial_commitment.hpp | 4 +- .../value/complete_partial_commitment.hpp | 6 +- .../notes/native/value/compute_nullifier.cpp | 6 +- .../value/create_partial_commitment.hpp | 6 +- .../proofs/notes/native/value/value_note.hpp | 2 +- .../join_split_example/proofs/verify.hpp | 19 +- .../barretenberg/join_split_example/types.hpp | 50 + cpp/src/barretenberg/plonk/CMakeLists.txt | 2 +- .../plonk/composer/composer_base.cpp | 6 +- .../plonk/composer/composer_base.hpp | 9 +- .../composer_helper/composer_helper_lib.cpp | 77 + .../composer_helper/composer_helper_lib.hpp | 30 + .../standard_plonk_composer_helper.cpp | 109 +- .../standard_plonk_composer_helper.hpp | 58 +- .../turbo_plonk_composer_helper.cpp | 171 + .../turbo_plonk_composer_helper.hpp | 138 + .../ultra_plonk_composer_helper.cpp | 385 + .../ultra_plonk_composer_helper.hpp | 215 + .../standard_plonk_composer.hpp | 46 +- .../standard_plonk_composer.test.cpp | 235 +- .../splitting_tmp/turbo_plonk_composer.hpp | 212 + .../turbo_plonk_composer.test.cpp | 1157 + .../splitting_tmp/ultra_plonk_composer.hpp | 494 + .../ultra_plonk_composer.test.cpp | 915 + .../plonk/composer/standard_composer.cpp | 246 +- .../plonk/composer/standard_composer.hpp | 17 +- .../plonk/composer/standard_composer.test.cpp | 201 +- .../plonk/composer/turbo_composer.cpp | 6 +- .../plonk/composer/turbo_composer.hpp | 22 +- .../plonk/composer/turbo_composer.test.cpp | 39 +- .../plonk/composer/ultra_composer.cpp | 380 +- .../plonk/composer/ultra_composer.hpp | 279 +- .../plonk/composer/ultra_composer.test.cpp | 330 +- cpp/src/barretenberg/plonk/flavor/flavor.hpp | 29 + .../commitment_scheme/commitment_scheme.hpp | 14 +- .../commitment_scheme.test.cpp | 18 +- .../kate_commitment_scheme.cpp | 22 +- .../kate_commitment_scheme.hpp | 11 +- .../plonk/proof_system/constants.hpp | 22 +- .../plonk/proof_system/prover/c_bind.cpp | 41 +- .../proof_system/prover/c_bind_unrolled.cpp | 109 - .../plonk/proof_system/prover/prover.cpp | 15 +- .../plonk/proof_system/prover/prover.hpp | 9 +- .../plonk/proof_system/prover/prover.test.cpp | 6 +- .../proof_system/proving_key/proving_key.cpp | 11 +- .../proof_system/proving_key/proving_key.hpp | 8 +- .../proving_key/proving_key.test.cpp | 55 +- .../proof_system/proving_key/serialize.hpp | 4 +- .../public_inputs/public_inputs.hpp | 2 +- .../public_inputs/public_inputs.test.cpp | 4 +- .../public_inputs/public_inputs_impl.hpp | 4 +- .../types/commitment_open_proof.hpp | 4 +- .../types/polynomial_manifest.hpp | 83 +- .../proof_system/types/program_settings.hpp | 27 +- .../plonk/proof_system/types/proof.hpp | 46 +- .../proof_system/types/prover_settings.hpp | 14 +- .../utils/generalized_permutation.hpp | 4 +- .../proof_system/utils/kate_verification.hpp | 4 +- .../plonk/proof_system/utils/permutation.hpp | 4 +- .../proof_system/verification_key/sol_gen.hpp | 166 + .../verification_key/verification_key.cpp | 88 +- .../verification_key/verification_key.hpp | 168 + .../verification_key.test.cpp | 157 + .../plonk/proof_system/verifier/verifier.cpp | 5 +- .../plonk/proof_system/verifier/verifier.hpp | 7 +- .../proof_system/verifier/verifier.test.cpp | 10 +- .../random_widgets/permutation_widget.hpp | 4 +- .../permutation_widget_impl.hpp | 8 +- .../widgets/random_widgets/plookup_widget.hpp | 4 +- .../random_widgets/plookup_widget_impl.hpp | 12 +- .../widgets/random_widgets/random_widget.hpp | 5 +- .../transition_widgets/arithmetic_widget.hpp | 31 +- .../transition_widgets/elliptic_widget.hpp | 39 +- .../transition_widgets/fixed_base_widget.hpp | 15 +- .../genperm_sort_widget.hpp | 24 +- .../plookup_arithmetic_widget.hpp | 44 +- .../plookup_auxiliary_widget.hpp | 48 +- .../transition_widgets/transition_widget.hpp | 11 +- .../turbo_arithmetic_widget.hpp | 51 +- .../transition_widgets/turbo_logic_widget.hpp | 32 +- .../transition_widgets/turbo_range_widget.hpp | 30 +- .../barretenberg/polynomials/polynomial.hpp | 28 +- .../barretenberg/proof_system/CMakeLists.txt | 2 +- .../arithmetization/arithmetization.hpp | 96 + .../gate_data.hpp} | 4 +- .../circuit_constructor_base.cpp | 16 +- .../circuit_constructor_base.hpp | 37 +- .../standard_circuit_constructor.cpp | 257 +- .../standard_circuit_constructor.hpp | 29 +- .../standard_circuit_constructor.test.cpp | 174 +- .../turbo_circuit_constructor.cpp | 1507 ++ .../turbo_circuit_constructor.hpp | 116 + .../turbo_circuit_constructor.test.cpp | 691 + .../ultra_circuit_constructor.cpp | 3335 +++ .../ultra_circuit_constructor.hpp | 987 + .../ultra_circuit_constructor.test.cpp | 838 + .../composer/composer_helper_lib.hpp | 169 + .../composer/composer_helper_lib.test.cpp | 169 + .../composer}/permutation_helper.hpp | 338 +- .../composer/permutation_helper.test.cpp | 91 + .../proof_system/flavor/flavor.hpp | 501 +- .../proof_system/flavor/flavor.test.cpp | 30 - .../plookup_tables/aes128.hpp | 0 .../plookup_tables/blake2s.hpp | 0 .../plookup_tables/keccak/keccak_chi.hpp | 0 .../plookup_tables/keccak/keccak_input.hpp | 0 .../plookup_tables/keccak/keccak_output.hpp | 0 .../plookup_tables/keccak/keccak_rho.hpp | 0 .../plookup_tables/keccak/keccak_theta.hpp | 0 .../non_native_group_generator.cpp | 0 .../non_native_group_generator.hpp | 0 .../plookup_tables/pedersen.hpp | 48 +- .../plookup_tables/plookup_tables.cpp | 0 .../plookup_tables/plookup_tables.hpp | 0 .../plookup_tables/sha256.hpp | 0 .../plookup_tables/sparse.hpp | 0 .../plookup_tables/types.hpp | 0 .../plookup_tables/uint.hpp | 2 +- .../polynomial_store/polynomial_store.hpp | 10 +- .../polynomial_store.test.cpp | 4 +- .../proof_system/types/composer_type.hpp | 6 + .../proof_system/types/merkle_hash_type.hpp | 6 + .../types/pedersen_commitment_type.hpp | 6 + .../proof_system/verification_key/sol_gen.hpp | 60 - .../verification_key/verification_key.hpp | 94 - .../verification_key.test.cpp | 43 - .../proof_system/work_queue/work_queue.cpp | 64 +- .../proof_system/work_queue/work_queue.hpp | 8 +- cpp/src/barretenberg/serialize/CMakeLists.txt | 7 + cpp/src/barretenberg/serialize/cbind.hpp | 101 + cpp/src/barretenberg/serialize/cbind_fwd.hpp | 11 + cpp/src/barretenberg/serialize/msgpack.hpp | 102 + .../msgpack_impl/check_memory_span.hpp | 76 + .../serialize/msgpack_impl/concepts.hpp | 15 + .../serialize/msgpack_impl/func_traits.hpp | 52 + .../serialize/msgpack_impl/msgpack_impl.hpp | 4 + .../msgpack_impl/name_value_pair_macro.hpp | 42 + .../serialize/msgpack_impl/schema_impl.hpp | 192 + .../serialize/msgpack_impl/schema_name.hpp | 31 + .../msgpack_impl/struct_map_impl.hpp | 78 + .../serialize/msgpack_impl/variant_impl.hpp | 16 + .../serialize/msgpack_schema.test.cpp | 86 + .../barretenberg/serialize/raw_pointer.hpp | 30 + .../barretenberg/serialize/test_helper.hpp | 38 + .../solidity_helpers/CMakeLists.txt | 17 + .../circuits/add_2_circuit.hpp | 25 + .../circuits/blake_circuit.hpp | 31 + .../circuits/recursive_circuit.hpp | 136 + .../barretenberg/solidity_helpers/key_gen.cpp | 87 + .../solidity_helpers/proof_gen.cpp | 93 + .../utils/instance_sol_gen.hpp | 30 + .../solidity_helpers/utils/utils.hpp | 19 + .../reference_string/env_reference_string.hpp | 51 + .../env_reference_string.test.cpp | 24 + .../file_reference_string.cpp | 4 +- .../file_reference_string.hpp | 4 +- .../reference_string/mem_reference_string.cpp | 4 +- .../reference_string/mem_reference_string.hpp | 4 +- .../mem_reference_string.test.cpp | 4 +- .../pippenger_reference_string.hpp | 4 +- .../srs/reference_string/reference_string.hpp | 4 +- cpp/src/barretenberg/stdlib/CMakeLists.txt | 1 + .../stdlib/commitment/CMakeLists.txt | 1 + .../stdlib/commitment/pedersen/CMakeLists.txt | 1 + .../pedersen/pedersen.bench.cpp | 15 +- .../stdlib/commitment/pedersen/pedersen.cpp | 141 + .../stdlib/commitment/pedersen/pedersen.hpp | 57 + .../pedersen/pedersen.test.cpp | 159 +- .../commitment/pedersen/pedersen_plookup.cpp | 212 + .../commitment/pedersen/pedersen_plookup.hpp | 50 + .../pedersen/pedersen_plookup.test.cpp | 183 + .../stdlib/encryption/aes128/aes128.cpp | 26 +- .../stdlib/encryption/aes128/aes128.hpp | 4 +- .../stdlib/encryption/aes128/aes128.test.cpp | 10 +- .../stdlib/encryption/ecdsa/ecdsa.hpp | 32 +- .../stdlib/encryption/ecdsa/ecdsa.test.cpp | 103 +- .../stdlib/encryption/ecdsa/ecdsa_impl.hpp | 149 +- .../stdlib/encryption/schnorr/CMakeLists.txt | 2 +- .../stdlib/encryption/schnorr/schnorr.cpp | 19 +- .../stdlib/encryption/schnorr/schnorr.hpp | 4 +- .../encryption/schnorr/schnorr.test.cpp | 49 +- .../barretenberg/stdlib/hash/CMakeLists.txt | 3 +- .../stdlib/hash/benchmarks/CMakeLists.txt | 2 + .../hash/benchmarks/external/CMakeLists.txt | 1 + .../benchmarks/external/external.bench.cpp | 182 + .../hash/benchmarks/sha256/CMakeLists.txt | 1 + .../{ => benchmarks}/sha256/sha256.bench.cpp | 18 +- .../stdlib/hash/blake2s/blake2s.cpp | 4 +- .../stdlib/hash/blake2s/blake2s.hpp | 8 +- .../stdlib/hash/blake2s/blake2s.test.cpp | 38 +- .../stdlib/hash/blake2s/blake2s_plookup.cpp | 9 +- .../stdlib/hash/blake2s/blake2s_plookup.hpp | 6 +- .../stdlib/hash/blake2s/blake_util.hpp | 8 +- .../stdlib/hash/blake3s/blake3s.cpp | 4 +- .../stdlib/hash/blake3s/blake3s.hpp | 8 +- .../stdlib/hash/blake3s/blake3s.test.cpp | 21 +- .../stdlib/hash/blake3s/blake3s_plookup.cpp | 8 +- .../stdlib/hash/blake3s/blake3s_plookup.hpp | 6 +- .../stdlib/hash/keccak/keccak.cpp | 212 +- .../stdlib/hash/keccak/keccak.hpp | 38 +- .../stdlib/hash/keccak/keccak.test.cpp | 94 +- .../stdlib/hash/pedersen/CMakeLists.txt | 2 +- .../stdlib/hash/pedersen/pedersen.cpp | 184 +- .../stdlib/hash/pedersen/pedersen.hpp | 63 +- .../stdlib/hash/pedersen/pedersen_gates.hpp | 315 + .../stdlib/hash/pedersen/pedersen_plookup.cpp | 115 +- .../stdlib/hash/pedersen/pedersen_plookup.hpp | 35 +- .../stdlib/hash/sha256/sha256.cpp | 4 +- .../stdlib/hash/sha256/sha256.hpp | 8 +- .../stdlib/hash/sha256/sha256.test.cpp | 54 +- .../stdlib/hash/sha256/sha256_plookup.cpp | 10 +- .../stdlib/hash/sha256/sha256_plookup.hpp | 10 +- .../stdlib/merkle_tree/CMakeLists.txt | 2 +- .../barretenberg/stdlib/merkle_tree/hash.hpp | 58 +- .../stdlib/merkle_tree/hash.test.cpp | 64 +- .../stdlib/merkle_tree/hash_path.hpp | 11 +- .../stdlib/merkle_tree/membership.hpp | 78 +- .../stdlib/merkle_tree/membership.test.cpp | 108 +- .../stdlib/merkle_tree/memory_store.hpp | 4 +- .../stdlib/merkle_tree/memory_tree.cpp | 26 +- .../stdlib/merkle_tree/memory_tree.hpp | 8 +- .../stdlib/merkle_tree/memory_tree.test.cpp | 45 +- .../stdlib/merkle_tree/merkle_tree.bench.cpp | 4 +- .../stdlib/merkle_tree/merkle_tree.cpp | 18 +- .../stdlib/merkle_tree/merkle_tree.hpp | 8 +- .../stdlib/merkle_tree/merkle_tree.test.cpp | 14 +- .../nullifier_tree/nullifier_leaf.hpp | 131 + .../nullifier_tree/nullifier_memory_tree.cpp | 77 + .../nullifier_tree/nullifier_memory_tree.hpp | 98 + .../nullifier_memory_tree.test.cpp | 371 + .../nullifier_tree/nullifier_tree.cpp | 90 + .../nullifier_tree/nullifier_tree.hpp | 45 + .../nullifier_tree/nullifier_tree.test.cpp | 140 + .../stdlib/primitives/address/address.hpp | 152 + .../primitives/bigfield/bigfield.fuzzer.hpp | 28 +- .../stdlib/primitives/bigfield/bigfield.hpp | 20 +- .../primitives/bigfield/bigfield.test.cpp | 8 +- .../primitives/bigfield/bigfield_impl.hpp | 66 +- .../stdlib/primitives/biggroup/biggroup.hpp | 247 +- .../primitives/biggroup/biggroup.test.cpp | 49 +- .../biggroup/biggroup_batch_mul.hpp | 15 +- .../primitives/biggroup/biggroup_bn254.hpp | 84 +- .../primitives/biggroup/biggroup_impl.hpp | 416 +- .../primitives/biggroup/biggroup_nafs.hpp | 47 +- .../biggroup/biggroup_secp256k1.hpp | 17 +- .../primitives/biggroup/biggroup_tables.hpp | 279 +- .../stdlib/primitives/bit_array/bit_array.cpp | 4 +- .../primitives/bit_array/bit_array.fuzzer.hpp | 17 +- .../stdlib/primitives/bit_array/bit_array.hpp | 4 +- .../primitives/bit_array/bit_array.test.cpp | 106 +- .../stdlib/primitives/bool/bool.cpp | 85 +- .../stdlib/primitives/bool/bool.fuzzer.hpp | 18 +- .../stdlib/primitives/bool/bool.hpp | 8 +- .../stdlib/primitives/bool/bool.test.cpp | 496 +- .../primitives/byte_array/byte_array.cpp | 4 +- .../byte_array/byte_array.fuzzer.hpp | 19 +- .../primitives/byte_array/byte_array.hpp | 4 +- .../primitives/byte_array/byte_array.test.cpp | 96 +- .../stdlib/primitives/composers/composers.hpp | 2 +- .../primitives/composers/composers_fwd.hpp | 10 +- .../stdlib/primitives/curves/bn254.hpp | 6 +- .../stdlib/primitives/curves/secp256k1.hpp | 6 +- .../stdlib/primitives/curves/secp256r1.hpp | 6 +- .../stdlib/primitives/field/array.hpp | 179 + .../stdlib/primitives/field/array.test.cpp | 727 + .../stdlib/primitives/field/field.cpp | 10 +- .../stdlib/primitives/field/field.fuzzer.hpp | 26 +- .../stdlib/primitives/field/field.hpp | 70 +- .../stdlib/primitives/field/field.test.cpp | 145 +- .../stdlib/primitives/group/group.hpp | 20 +- .../stdlib/primitives/group/group.test.cpp | 53 +- .../stdlib/primitives/logic/logic.cpp | 118 + .../stdlib/primitives/logic/logic.hpp | 33 + .../stdlib/primitives/logic/logic.test.cpp | 165 + .../primitives/memory/dynamic_array.cpp | 279 + .../primitives/memory/dynamic_array.hpp | 54 + .../primitives/memory/dynamic_array.test.cpp | 72 + .../stdlib/primitives/memory/ram_table.cpp | 257 + .../stdlib/primitives/memory/ram_table.hpp | 63 + .../primitives/memory/ram_table.test.cpp | 111 + .../stdlib/primitives/memory/rom_table.cpp | 4 +- .../stdlib/primitives/memory/rom_table.hpp | 4 +- .../primitives/memory/rom_table.test.cpp | 4 +- .../primitives/memory/twin_rom_table.cpp | 4 +- .../primitives/memory/twin_rom_table.hpp | 4 +- .../packed_byte_array/packed_byte_array.cpp | 4 +- .../packed_byte_array/packed_byte_array.hpp | 4 +- .../packed_byte_array.test.cpp | 108 +- .../stdlib/primitives/plookup/plookup.cpp | 16 +- .../stdlib/primitives/plookup/plookup.hpp | 26 +- .../primitives/plookup/plookup.test.cpp | 38 +- .../stdlib/primitives/point/point.hpp | 19 +- .../stdlib/primitives/safe_uint/safe_uint.cpp | 4 +- .../primitives/safe_uint/safe_uint.fuzzer.hpp | 26 +- .../stdlib/primitives/safe_uint/safe_uint.hpp | 4 +- .../primitives/safe_uint/safe_uint.test.cpp | 436 +- .../stdlib/primitives/uint/arithmetic.cpp | 6 +- .../stdlib/primitives/uint/comparison.cpp | 4 +- .../stdlib/primitives/uint/logic.cpp | 6 +- .../primitives/uint/plookup/arithmetic.cpp | 6 +- .../primitives/uint/plookup/comparison.cpp | 4 +- .../stdlib/primitives/uint/plookup/logic.cpp | 6 +- .../stdlib/primitives/uint/plookup/uint.cpp | 4 +- .../stdlib/primitives/uint/plookup/uint.hpp | 4 +- .../stdlib/primitives/uint/uint.cpp | 8 +- .../stdlib/primitives/uint/uint.fuzzer.hpp | 28 +- .../stdlib/primitives/uint/uint.hpp | 4 +- .../stdlib/primitives/uint/uint.test.cpp | 12 +- .../stdlib/primitives/witness/witness.hpp | 4 +- .../stdlib/recursion/CMakeLists.txt | 2 +- .../aggregation_state/aggregation_state.hpp | 110 + .../native_aggregation_state.hpp | 64 + .../recursion/transcript/transcript.hpp | 237 +- .../recursion/transcript/transcript.test.cpp | 4 +- .../verification_key/verification_key.hpp | 337 +- .../verification_key.test.cpp | 90 + .../recursion/verifier/program_settings.hpp | 66 +- .../stdlib/recursion/verifier/verifier.hpp | 106 +- .../recursion/verifier/verifier.test.cpp | 167 +- .../verifier/verifier_turbo.test.cpp | 106 +- cpp/src/barretenberg/stdlib/types/types.hpp | 94 - .../barretenberg/transcript/CMakeLists.txt | 2 +- .../barretenberg/transcript/transcript.cpp | 41 +- .../barretenberg/transcript/transcript.hpp | 5 +- .../transcript/transcript.test.cpp | 2 +- cpp/src/msgpack-c/.clang-format | 2 + cpp/src/msgpack-c/.github/depends/boost.sh | 72 + cpp/src/msgpack-c/.github/depends/zlib.sh | 51 + .../msgpack-c/.github/workflows/coverage.yml | 73 + cpp/src/msgpack-c/.github/workflows/gha.yml | 238 + cpp/src/msgpack-c/.gitignore | 51 + cpp/src/msgpack-c/CHANGELOG.md | 472 + cpp/src/msgpack-c/CMakeLists.txt | 246 + cpp/src/msgpack-c/COPYING | 5 + cpp/src/msgpack-c/Doxyfile | 1552 ++ cpp/src/msgpack-c/Files.cmake | 732 + cpp/src/msgpack-c/LICENSE_1_0.txt | 23 + cpp/src/msgpack-c/NOTICE | 14 + cpp/src/msgpack-c/QUICKSTART-CPP.md | 159 + cpp/src/msgpack-c/README.md | 222 + cpp/src/msgpack-c/appveyor.yml | 66 + cpp/src/msgpack-c/ci/build_cmake.sh | 60 + cpp/src/msgpack-c/ci/build_regression.sh | 25 + cpp/src/msgpack-c/ci/set_gcc_10.sh | 17 + cpp/src/msgpack-c/cmake/CodeCoverage.cmake | 55 + cpp/src/msgpack-c/codecov.yml | 36 + .../erb/v1/cpp03_define_array.hpp.erb | 110 + .../erb/v1/cpp03_define_array_decl.hpp.erb | 42 + .../msgpack-c/erb/v1/cpp03_define_map.hpp.erb | 120 + .../erb/v1/cpp03_define_map_decl.hpp.erb | 42 + .../erb/v1/cpp03_msgpack_tuple.hpp.erb | 227 + .../erb/v1/cpp03_msgpack_tuple_decl.hpp.erb | 69 + cpp/src/msgpack-c/erb/v1/cpp03_zone.hpp.erb | 343 + .../msgpack-c/erb/v1/cpp03_zone_decl.hpp.erb | 54 + cpp/src/msgpack-c/example/CMakeLists.txt | 9 + .../msgpack-c/example/boost/CMakeLists.txt | 46 + .../example/boost/asio_send_recv.cpp | 104 + .../example/boost/asio_send_recv_zlib.cpp | 176 + .../boost/msgpack_variant_capitalize.cpp | 94 + .../boost/msgpack_variant_mapbased.cpp | 97 + .../msgpack-c/example/cpp03/CMakeLists.txt | 113 + .../example/cpp03/class_intrusive.cpp | 104 + .../example/cpp03/class_intrusive_map.cpp | 76 + .../example/cpp03/class_non_intrusive.cpp | 119 + cpp/src/msgpack-c/example/cpp03/custom.cpp | 67 + cpp/src/msgpack-c/example/cpp03/enum.cpp | 59 + .../example/cpp03/map_based_versionup.cpp | 112 + cpp/src/msgpack-c/example/cpp03/protocol.cpp | 97 + .../msgpack-c/example/cpp03/protocol_new.cpp | 84 + .../msgpack-c/example/cpp03/reuse_zone.cpp | 43 + cpp/src/msgpack-c/example/cpp03/simple.cpp | 44 + .../msgpack-c/example/cpp03/speed_test.cpp | 63 + .../example/cpp03/speed_test_nested_array.cpp | 86 + cpp/src/msgpack-c/example/cpp03/stream.cpp | 148 + .../msgpack-c/example/cpp11/CMakeLists.txt | 38 + cpp/src/msgpack-c/example/cpp11/container.cpp | 159 + .../example/cpp11/non_def_con_class.cpp | 51 + .../example/cpp11/socket_stream_example.cpp | 157 + cpp/src/msgpack-c/example/x3/CMakeLists.txt | 64 + cpp/src/msgpack-c/example/x3/parse.cpp | 125 + .../msgpack-c/example/x3/stream_unpack.cpp | 248 + cpp/src/msgpack-c/example/x3/unpack.cpp | 43 + cpp/src/msgpack-c/fuzz/CMakeLists.txt | 38 + cpp/src/msgpack-c/fuzz/regression_runner.cpp | 49 + cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer.cpp | 27 + ...imized-unpack_pack_fuzzer-5656982724804608 | Bin 0 -> 158105 bytes ...imized-unpack_pack_fuzzer-6022481354686464 | Bin 0 -> 7432 bytes .../unpack_pack_fuzzer_seed_corpus/EmptyArray | 1 + .../EmptyObject | 1 + .../ExcessiveNesting | 2 + .../OpenWeatherMap | Bin 0 -> 420 bytes .../WeatherUnderground | Bin 0 -> 2087 bytes cpp/src/msgpack-c/include/msgpack.hpp | 22 + .../include/msgpack/adaptor/adaptor_base.hpp | 19 + .../msgpack/adaptor/adaptor_base_decl.hpp | 17 + .../include/msgpack/adaptor/array_ref.hpp | 17 + .../msgpack/adaptor/array_ref_decl.hpp | 17 + .../include/msgpack/adaptor/bool.hpp | 15 + .../include/msgpack/adaptor/boost/fusion.hpp | 15 + .../msgpack/adaptor/boost/msgpack_variant.hpp | 18 + .../adaptor/boost/msgpack_variant_decl.hpp | 17 + .../msgpack/adaptor/boost/optional.hpp | 15 + .../msgpack/adaptor/boost/string_ref.hpp | 15 + .../msgpack/adaptor/boost/string_view.hpp | 15 + .../include/msgpack/adaptor/carray.hpp | 15 + .../include/msgpack/adaptor/char_ptr.hpp | 15 + .../msgpack/adaptor/check_container_size.hpp | 17 + .../adaptor/check_container_size_decl.hpp | 17 + .../include/msgpack/adaptor/complex.hpp | 15 + .../include/msgpack/adaptor/cpp11/array.hpp | 16 + .../msgpack/adaptor/cpp11/array_char.hpp | 16 + .../adaptor/cpp11/array_unsigned_char.hpp | 16 + .../include/msgpack/adaptor/cpp11/chrono.hpp | 16 + .../msgpack/adaptor/cpp11/forward_list.hpp | 16 + .../adaptor/cpp11/reference_wrapper.hpp | 16 + .../msgpack/adaptor/cpp11/shared_ptr.hpp | 16 + .../msgpack/adaptor/cpp11/timespec.hpp | 16 + .../include/msgpack/adaptor/cpp11/tuple.hpp | 16 + .../msgpack/adaptor/cpp11/unique_ptr.hpp | 16 + .../msgpack/adaptor/cpp11/unordered_map.hpp | 16 + .../msgpack/adaptor/cpp11/unordered_set.hpp | 16 + .../msgpack/adaptor/cpp17/array_byte.hpp | 16 + .../include/msgpack/adaptor/cpp17/byte.hpp | 16 + .../msgpack/adaptor/cpp17/carray_byte.hpp | 16 + .../msgpack/adaptor/cpp17/optional.hpp | 16 + .../msgpack/adaptor/cpp17/string_view.hpp | 16 + .../msgpack/adaptor/cpp17/vector_byte.hpp | 16 + .../include/msgpack/adaptor/cpp20/span.hpp | 16 + .../include/msgpack/adaptor/define.hpp | 17 + .../include/msgpack/adaptor/define_decl.hpp | 204 + .../include/msgpack/adaptor/deque.hpp | 15 + .../msgpack-c/include/msgpack/adaptor/ext.hpp | 17 + .../include/msgpack/adaptor/ext_decl.hpp | 17 + .../include/msgpack/adaptor/fixint.hpp | 17 + .../include/msgpack/adaptor/fixint_decl.hpp | 17 + .../include/msgpack/adaptor/float.hpp | 15 + .../msgpack-c/include/msgpack/adaptor/int.hpp | 17 + .../include/msgpack/adaptor/int_decl.hpp | 17 + .../include/msgpack/adaptor/list.hpp | 15 + .../msgpack-c/include/msgpack/adaptor/map.hpp | 18 + .../include/msgpack/adaptor/map_decl.hpp | 17 + .../include/msgpack/adaptor/msgpack_tuple.hpp | 17 + .../msgpack/adaptor/msgpack_tuple_decl.hpp | 17 + .../msgpack-c/include/msgpack/adaptor/nil.hpp | 17 + .../include/msgpack/adaptor/nil_decl.hpp | 17 + .../include/msgpack/adaptor/pair.hpp | 15 + .../msgpack-c/include/msgpack/adaptor/raw.hpp | 17 + .../include/msgpack/adaptor/raw_decl.hpp | 17 + .../msgpack-c/include/msgpack/adaptor/set.hpp | 15 + .../msgpack/adaptor/size_equal_only.hpp | 17 + .../msgpack/adaptor/size_equal_only_decl.hpp | 17 + .../include/msgpack/adaptor/string.hpp | 15 + .../msgpack/adaptor/tr1/unordered_map.hpp | 172 + .../msgpack/adaptor/tr1/unordered_set.hpp | 166 + .../include/msgpack/adaptor/v4raw.hpp | 17 + .../include/msgpack/adaptor/v4raw_decl.hpp | 17 + .../include/msgpack/adaptor/vector.hpp | 15 + .../include/msgpack/adaptor/vector_bool.hpp | 15 + .../include/msgpack/adaptor/vector_char.hpp | 15 + .../msgpack/adaptor/vector_unsigned_char.hpp | 15 + .../include/msgpack/adaptor/wstring.hpp | 15 + cpp/src/msgpack-c/include/msgpack/assert.hpp | 43 + .../msgpack-c/include/msgpack/cpp_config.hpp | 17 + .../include/msgpack/cpp_config_decl.hpp | 17 + .../msgpack-c/include/msgpack/cpp_version.hpp | 18 + .../include/msgpack/create_object_visitor.hpp | 17 + .../msgpack/create_object_visitor_decl.hpp | 16 + cpp/src/msgpack-c/include/msgpack/fbuffer.hpp | 17 + .../include/msgpack/fbuffer_decl.hpp | 17 + .../msgpack-c/include/msgpack/gcc_atomic.hpp | 30 + .../msgpack-c/include/msgpack/iterator.hpp | 18 + .../include/msgpack/iterator_decl.hpp | 18 + cpp/src/msgpack-c/include/msgpack/meta.hpp | 18 + .../msgpack-c/include/msgpack/meta_decl.hpp | 18 + .../include/msgpack/null_visitor.hpp | 17 + .../include/msgpack/null_visitor_decl.hpp | 16 + cpp/src/msgpack-c/include/msgpack/object.hpp | 18 + .../msgpack-c/include/msgpack/object_decl.hpp | 18 + .../msgpack-c/include/msgpack/object_fwd.hpp | 20 + .../include/msgpack/object_fwd_decl.hpp | 18 + cpp/src/msgpack-c/include/msgpack/pack.hpp | 17 + .../msgpack-c/include/msgpack/pack_decl.hpp | 17 + cpp/src/msgpack-c/include/msgpack/parse.hpp | 18 + .../msgpack-c/include/msgpack/parse_decl.hpp | 16 + .../include/msgpack/parse_return.hpp | 17 + cpp/src/msgpack-c/include/msgpack/predef.h | 24 + .../include/msgpack/predef/architecture.h | 33 + .../msgpack/predef/architecture/alpha.h | 59 + .../include/msgpack/predef/architecture/arm.h | 80 + .../msgpack/predef/architecture/blackfin.h | 46 + .../msgpack/predef/architecture/convex.h | 65 + .../msgpack/predef/architecture/ia64.h | 49 + .../msgpack/predef/architecture/m68k.h | 82 + .../msgpack/predef/architecture/mips.h | 73 + .../msgpack/predef/architecture/parisc.h | 64 + .../include/msgpack/predef/architecture/ppc.h | 72 + .../include/msgpack/predef/architecture/ptx.h | 44 + .../msgpack/predef/architecture/pyramid.h | 42 + .../msgpack/predef/architecture/rs6k.h | 56 + .../msgpack/predef/architecture/sparc.h | 54 + .../msgpack/predef/architecture/superh.h | 67 + .../msgpack/predef/architecture/sys370.h | 43 + .../msgpack/predef/architecture/sys390.h | 43 + .../include/msgpack/predef/architecture/x86.h | 38 + .../msgpack/predef/architecture/x86/32.h | 87 + .../msgpack/predef/architecture/x86/64.h | 50 + .../include/msgpack/predef/architecture/z.h | 42 + .../include/msgpack/predef/compiler.h | 44 + .../include/msgpack/predef/compiler/borland.h | 63 + .../include/msgpack/predef/compiler/clang.h | 56 + .../include/msgpack/predef/compiler/comeau.h | 61 + .../include/msgpack/predef/compiler/compaq.h | 66 + .../include/msgpack/predef/compiler/diab.h | 56 + .../msgpack/predef/compiler/digitalmars.h | 56 + .../include/msgpack/predef/compiler/dignus.h | 56 + .../include/msgpack/predef/compiler/edg.h | 56 + .../include/msgpack/predef/compiler/ekopath.h | 57 + .../include/msgpack/predef/compiler/gcc.h | 68 + .../include/msgpack/predef/compiler/gcc_xml.h | 53 + .../msgpack/predef/compiler/greenhills.h | 66 + .../include/msgpack/predef/compiler/hp_acc.h | 61 + .../include/msgpack/predef/compiler/iar.h | 56 + .../include/msgpack/predef/compiler/ibm.h | 72 + .../include/msgpack/predef/compiler/intel.h | 79 + .../include/msgpack/predef/compiler/kai.h | 56 + .../include/msgpack/predef/compiler/llvm.h | 57 + .../msgpack/predef/compiler/metaware.h | 53 + .../msgpack/predef/compiler/metrowerks.h | 77 + .../msgpack/predef/compiler/microtec.h | 53 + .../include/msgpack/predef/compiler/mpw.h | 63 + .../include/msgpack/predef/compiler/nvcc.h | 60 + .../include/msgpack/predef/compiler/palm.h | 56 + .../include/msgpack/predef/compiler/pgi.h | 60 + .../msgpack/predef/compiler/sgi_mipspro.h | 66 + .../include/msgpack/predef/compiler/sunpro.h | 76 + .../include/msgpack/predef/compiler/tendra.h | 53 + .../include/msgpack/predef/compiler/visualc.h | 105 + .../include/msgpack/predef/compiler/watcom.h | 56 + .../include/msgpack/predef/detail/_cassert.h | 17 + .../msgpack/predef/detail/_exception.h | 15 + .../msgpack/predef/detail/comp_detected.h | 10 + .../msgpack/predef/detail/endian_compat.h | 26 + .../msgpack/predef/detail/os_detected.h | 10 + .../msgpack/predef/detail/platform_detected.h | 10 + .../include/msgpack/predef/detail/test.h | 17 + .../include/msgpack/predef/detail/test_def.h | 71 + .../include/msgpack/predef/hardware.h | 16 + .../include/msgpack/predef/hardware/simd.h | 119 + .../msgpack/predef/hardware/simd/arm.h | 59 + .../predef/hardware/simd/arm/versions.h | 32 + .../msgpack/predef/hardware/simd/ppc.h | 69 + .../predef/hardware/simd/ppc/versions.h | 51 + .../msgpack/predef/hardware/simd/x86.h | 123 + .../predef/hardware/simd/x86/versions.h | 129 + .../msgpack/predef/hardware/simd/x86_amd.h | 87 + .../predef/hardware/simd/x86_amd/versions.h | 51 + .../include/msgpack/predef/language.h | 18 + .../include/msgpack/predef/language/cuda.h | 52 + .../include/msgpack/predef/language/objc.h | 42 + .../include/msgpack/predef/language/stdc.h | 53 + .../include/msgpack/predef/language/stdcpp.h | 121 + .../include/msgpack/predef/library.h | 16 + .../include/msgpack/predef/library/c.h | 21 + .../msgpack/predef/library/c/_prefix.h | 13 + .../msgpack/predef/library/c/cloudabi.h | 53 + .../include/msgpack/predef/library/c/gnu.h | 61 + .../include/msgpack/predef/library/c/uc.h | 47 + .../include/msgpack/predef/library/c/vms.h | 47 + .../include/msgpack/predef/library/c/zos.h | 56 + .../include/msgpack/predef/library/std.h | 25 + .../msgpack/predef/library/std/_prefix.h | 23 + .../include/msgpack/predef/library/std/cxx.h | 46 + .../msgpack/predef/library/std/dinkumware.h | 52 + .../msgpack/predef/library/std/libcomo.h | 47 + .../msgpack/predef/library/std/modena.h | 45 + .../include/msgpack/predef/library/std/msl.h | 53 + .../msgpack/predef/library/std/roguewave.h | 56 + .../include/msgpack/predef/library/std/sgi.h | 51 + .../msgpack/predef/library/std/stdcpp3.h | 53 + .../msgpack/predef/library/std/stlport.h | 59 + .../msgpack/predef/library/std/vacpp.h | 44 + .../msgpack-c/include/msgpack/predef/make.h | 97 + cpp/src/msgpack-c/include/msgpack/predef/os.h | 33 + .../msgpack-c/include/msgpack/predef/os/aix.h | 66 + .../include/msgpack/predef/os/amigaos.h | 46 + .../include/msgpack/predef/os/android.h | 45 + .../include/msgpack/predef/os/beos.h | 45 + .../msgpack-c/include/msgpack/predef/os/bsd.h | 103 + .../include/msgpack/predef/os/bsd/bsdi.h | 48 + .../include/msgpack/predef/os/bsd/dragonfly.h | 50 + .../include/msgpack/predef/os/bsd/free.h | 67 + .../include/msgpack/predef/os/bsd/net.h | 84 + .../include/msgpack/predef/os/bsd/open.h | 251 + .../include/msgpack/predef/os/cygwin.h | 45 + .../include/msgpack/predef/os/haiku.h | 46 + .../include/msgpack/predef/os/hpux.h | 47 + .../msgpack-c/include/msgpack/predef/os/ios.h | 51 + .../include/msgpack/predef/os/irix.h | 46 + .../include/msgpack/predef/os/linux.h | 46 + .../include/msgpack/predef/os/macos.h | 65 + .../include/msgpack/predef/os/os400.h | 45 + .../include/msgpack/predef/os/qnxnto.h | 59 + .../include/msgpack/predef/os/solaris.h | 46 + .../include/msgpack/predef/os/unix.h | 76 + .../msgpack-c/include/msgpack/predef/os/vms.h | 52 + .../include/msgpack/predef/os/windows.h | 51 + .../msgpack-c/include/msgpack/predef/other.h | 16 + .../include/msgpack/predef/other/endian.h | 203 + .../include/msgpack/predef/other/workaround.h | 87 + .../include/msgpack/predef/platform.h | 28 + .../msgpack/predef/platform/cloudabi.h | 43 + .../include/msgpack/predef/platform/ios.h | 58 + .../include/msgpack/predef/platform/mingw.h | 69 + .../include/msgpack/predef/platform/mingw32.h | 63 + .../include/msgpack/predef/platform/mingw64.h | 63 + .../msgpack/predef/platform/windows_desktop.h | 51 + .../msgpack/predef/platform/windows_phone.h | 48 + .../msgpack/predef/platform/windows_runtime.h | 53 + .../msgpack/predef/platform/windows_server.h | 47 + .../msgpack/predef/platform/windows_store.h | 50 + .../msgpack/predef/platform/windows_system.h | 47 + .../msgpack/predef/platform/windows_uwp.h | 60 + .../include/msgpack/predef/version.h | 15 + .../include/msgpack/predef/version_number.h | 72 + .../include/msgpack/preprocessor.hpp | 19 + .../msgpack/preprocessor/arithmetic.hpp | 25 + .../msgpack/preprocessor/arithmetic/add.hpp | 51 + .../msgpack/preprocessor/arithmetic/dec.hpp | 289 + .../arithmetic/detail/div_base.hpp | 61 + .../msgpack/preprocessor/arithmetic/div.hpp | 39 + .../msgpack/preprocessor/arithmetic/inc.hpp | 288 + .../msgpack/preprocessor/arithmetic/mod.hpp | 39 + .../msgpack/preprocessor/arithmetic/mul.hpp | 53 + .../msgpack/preprocessor/arithmetic/sub.hpp | 50 + .../include/msgpack/preprocessor/array.hpp | 32 + .../msgpack/preprocessor/array/data.hpp | 28 + .../preprocessor/array/detail/get_data.hpp | 55 + .../msgpack/preprocessor/array/elem.hpp | 29 + .../msgpack/preprocessor/array/enum.hpp | 33 + .../msgpack/preprocessor/array/insert.hpp | 55 + .../msgpack/preprocessor/array/pop_back.hpp | 37 + .../msgpack/preprocessor/array/pop_front.hpp | 38 + .../msgpack/preprocessor/array/push_back.hpp | 35 + .../msgpack/preprocessor/array/push_front.hpp | 35 + .../msgpack/preprocessor/array/remove.hpp | 54 + .../msgpack/preprocessor/array/replace.hpp | 49 + .../msgpack/preprocessor/array/reverse.hpp | 29 + .../msgpack/preprocessor/array/size.hpp | 28 + .../msgpack/preprocessor/array/to_list.hpp | 47 + .../msgpack/preprocessor/array/to_seq.hpp | 46 + .../msgpack/preprocessor/array/to_tuple.hpp | 33 + .../msgpack/preprocessor/assert_msg.hpp | 17 + .../include/msgpack/preprocessor/cat.hpp | 35 + .../include/msgpack/preprocessor/comma.hpp | 17 + .../include/msgpack/preprocessor/comma_if.hpp | 17 + .../msgpack/preprocessor/comparison.hpp | 24 + .../msgpack/preprocessor/comparison/equal.hpp | 34 + .../preprocessor/comparison/greater.hpp | 38 + .../preprocessor/comparison/greater_equal.hpp | 38 + .../msgpack/preprocessor/comparison/less.hpp | 46 + .../preprocessor/comparison/less_equal.hpp | 39 + .../preprocessor/comparison/not_equal.hpp | 814 + .../msgpack/preprocessor/config/config.hpp | 112 + .../msgpack/preprocessor/config/limits.hpp | 30 + .../include/msgpack/preprocessor/control.hpp | 22 + .../msgpack/preprocessor/control/deduce_d.hpp | 22 + .../preprocessor/control/detail/dmc/while.hpp | 536 + .../preprocessor/control/detail/edg/while.hpp | 534 + .../control/detail/msvc/while.hpp | 277 + .../preprocessor/control/detail/while.hpp | 536 + .../msgpack/preprocessor/control/expr_if.hpp | 30 + .../msgpack/preprocessor/control/expr_iif.hpp | 31 + .../msgpack/preprocessor/control/if.hpp | 30 + .../msgpack/preprocessor/control/iif.hpp | 34 + .../msgpack/preprocessor/control/while.hpp | 312 + .../include/msgpack/preprocessor/debug.hpp | 18 + .../msgpack/preprocessor/debug/assert.hpp | 44 + .../msgpack/preprocessor/debug/error.hpp | 33 + .../msgpack/preprocessor/debug/line.hpp | 35 + .../include/msgpack/preprocessor/dec.hpp | 17 + .../msgpack/preprocessor/detail/auto_rec.hpp | 293 + .../msgpack/preprocessor/detail/check.hpp | 48 + .../preprocessor/detail/dmc/auto_rec.hpp | 286 + .../msgpack/preprocessor/detail/is_binary.hpp | 30 + .../preprocessor/detail/is_nullary.hpp | 30 + .../msgpack/preprocessor/detail/is_unary.hpp | 30 + .../msgpack/preprocessor/detail/null.hpp | 17 + .../msgpack/preprocessor/detail/split.hpp | 35 + .../include/msgpack/preprocessor/empty.hpp | 17 + .../include/msgpack/preprocessor/enum.hpp | 17 + .../msgpack/preprocessor/enum_params.hpp | 17 + .../enum_params_with_a_default.hpp | 17 + .../enum_params_with_defaults.hpp | 17 + .../msgpack/preprocessor/enum_shifted.hpp | 17 + .../preprocessor/enum_shifted_params.hpp | 17 + .../include/msgpack/preprocessor/expand.hpp | 17 + .../include/msgpack/preprocessor/expr_if.hpp | 17 + .../msgpack/preprocessor/facilities.hpp | 23 + .../msgpack/preprocessor/facilities/apply.hpp | 34 + .../facilities/detail/is_empty.hpp | 55 + .../msgpack/preprocessor/facilities/empty.hpp | 23 + .../preprocessor/facilities/expand.hpp | 28 + .../preprocessor/facilities/identity.hpp | 27 + .../preprocessor/facilities/intercept.hpp | 277 + .../msgpack/preprocessor/facilities/is_1.hpp | 23 + .../preprocessor/facilities/is_empty.hpp | 56 + .../preprocessor/facilities/is_empty_or_1.hpp | 31 + .../facilities/is_empty_variadic.hpp | 57 + .../preprocessor/facilities/overload.hpp | 25 + .../include/msgpack/preprocessor/for.hpp | 17 + .../include/msgpack/preprocessor/identity.hpp | 17 + .../include/msgpack/preprocessor/if.hpp | 17 + .../include/msgpack/preprocessor/inc.hpp | 17 + .../include/msgpack/preprocessor/iterate.hpp | 17 + .../msgpack/preprocessor/iteration.hpp | 19 + .../iteration/detail/bounds/lower1.hpp | 99 + .../iteration/detail/bounds/lower2.hpp | 99 + .../iteration/detail/bounds/lower3.hpp | 99 + .../iteration/detail/bounds/lower4.hpp | 99 + .../iteration/detail/bounds/lower5.hpp | 99 + .../iteration/detail/bounds/upper1.hpp | 99 + .../iteration/detail/bounds/upper2.hpp | 99 + .../iteration/detail/bounds/upper3.hpp | 99 + .../iteration/detail/bounds/upper4.hpp | 99 + .../iteration/detail/bounds/upper5.hpp | 99 + .../preprocessor/iteration/detail/finish.hpp | 99 + .../iteration/detail/iter/forward1.hpp | 1342 ++ .../iteration/detail/iter/forward2.hpp | 1338 ++ .../iteration/detail/iter/forward3.hpp | 1338 ++ .../iteration/detail/iter/forward4.hpp | 1338 ++ .../iteration/detail/iter/forward5.hpp | 1338 ++ .../iteration/detail/iter/reverse1.hpp | 1296 ++ .../iteration/detail/iter/reverse2.hpp | 1296 ++ .../iteration/detail/iter/reverse3.hpp | 1296 ++ .../iteration/detail/iter/reverse4.hpp | 1296 ++ .../iteration/detail/iter/reverse5.hpp | 1296 ++ .../preprocessor/iteration/detail/local.hpp | 812 + .../preprocessor/iteration/detail/rlocal.hpp | 782 + .../preprocessor/iteration/detail/self.hpp | 21 + .../preprocessor/iteration/detail/start.hpp | 99 + .../preprocessor/iteration/iterate.hpp | 82 + .../msgpack/preprocessor/iteration/local.hpp | 26 + .../msgpack/preprocessor/iteration/self.hpp | 19 + .../include/msgpack/preprocessor/library.hpp | 37 + .../include/msgpack/preprocessor/limits.hpp | 17 + .../include/msgpack/preprocessor/list.hpp | 37 + .../include/msgpack/preprocessor/list/adt.hpp | 73 + .../msgpack/preprocessor/list/append.hpp | 40 + .../include/msgpack/preprocessor/list/at.hpp | 39 + .../include/msgpack/preprocessor/list/cat.hpp | 42 + .../list/detail/dmc/fold_left.hpp | 279 + .../list/detail/edg/fold_left.hpp | 536 + .../list/detail/edg/fold_right.hpp | 794 + .../preprocessor/list/detail/fold_left.hpp | 279 + .../preprocessor/list/detail/fold_right.hpp | 277 + .../msgpack/preprocessor/list/enum.hpp | 41 + .../msgpack/preprocessor/list/filter.hpp | 54 + .../msgpack/preprocessor/list/first_n.hpp | 58 + .../msgpack/preprocessor/list/fold_left.hpp | 303 + .../msgpack/preprocessor/list/fold_right.hpp | 40 + .../msgpack/preprocessor/list/for_each.hpp | 49 + .../msgpack/preprocessor/list/for_each_i.hpp | 65 + .../preprocessor/list/for_each_product.hpp | 141 + .../msgpack/preprocessor/list/rest_n.hpp | 55 + .../msgpack/preprocessor/list/reverse.hpp | 40 + .../msgpack/preprocessor/list/size.hpp | 58 + .../msgpack/preprocessor/list/to_array.hpp | 155 + .../msgpack/preprocessor/list/to_seq.hpp | 32 + .../msgpack/preprocessor/list/to_tuple.hpp | 61 + .../msgpack/preprocessor/list/transform.hpp | 49 + .../include/msgpack/preprocessor/logical.hpp | 29 + .../msgpack/preprocessor/logical/and.hpp | 30 + .../msgpack/preprocessor/logical/bitand.hpp | 38 + .../msgpack/preprocessor/logical/bitnor.hpp | 38 + .../msgpack/preprocessor/logical/bitor.hpp | 38 + .../msgpack/preprocessor/logical/bitxor.hpp | 38 + .../msgpack/preprocessor/logical/bool.hpp | 288 + .../msgpack/preprocessor/logical/compl.hpp | 36 + .../msgpack/preprocessor/logical/nor.hpp | 30 + .../msgpack/preprocessor/logical/not.hpp | 30 + .../msgpack/preprocessor/logical/or.hpp | 30 + .../msgpack/preprocessor/logical/xor.hpp | 30 + .../include/msgpack/preprocessor/max.hpp | 17 + .../include/msgpack/preprocessor/min.hpp | 17 + .../msgpack/preprocessor/punctuation.hpp | 22 + .../preprocessor/punctuation/comma.hpp | 21 + .../preprocessor/punctuation/comma_if.hpp | 31 + .../punctuation/detail/is_begin_parens.hpp | 48 + .../punctuation/is_begin_parens.hpp | 51 + .../preprocessor/punctuation/paren.hpp | 23 + .../preprocessor/punctuation/paren_if.hpp | 38 + .../punctuation/remove_parens.hpp | 39 + .../include/msgpack/preprocessor/repeat.hpp | 17 + .../msgpack/preprocessor/repeat_2nd.hpp | 17 + .../msgpack/preprocessor/repeat_3rd.hpp | 17 + .../msgpack/preprocessor/repeat_from_to.hpp | 17 + .../preprocessor/repeat_from_to_2nd.hpp | 17 + .../preprocessor/repeat_from_to_3rd.hpp | 17 + .../msgpack/preprocessor/repetition.hpp | 32 + .../preprocessor/repetition/deduce_r.hpp | 22 + .../preprocessor/repetition/deduce_z.hpp | 22 + .../repetition/detail/dmc/for.hpp | 536 + .../repetition/detail/edg/for.hpp | 534 + .../preprocessor/repetition/detail/for.hpp | 536 + .../repetition/detail/msvc/for.hpp | 277 + .../msgpack/preprocessor/repetition/enum.hpp | 66 + .../repetition/enum_binary_params.hpp | 54 + .../preprocessor/repetition/enum_params.hpp | 41 + .../repetition/enum_params_with_a_default.hpp | 25 + .../repetition/enum_params_with_defaults.hpp | 24 + .../preprocessor/repetition/enum_shifted.hpp | 68 + .../repetition/enum_shifted_binary_params.hpp | 51 + .../repetition/enum_shifted_params.hpp | 44 + .../preprocessor/repetition/enum_trailing.hpp | 63 + .../enum_trailing_binary_params.hpp | 53 + .../repetition/enum_trailing_params.hpp | 38 + .../msgpack/preprocessor/repetition/for.hpp | 324 + .../preprocessor/repetition/repeat.hpp | 825 + .../repetition/repeat_from_to.hpp | 87 + .../msgpack/preprocessor/selection.hpp | 18 + .../msgpack/preprocessor/selection/max.hpp | 39 + .../msgpack/preprocessor/selection/min.hpp | 39 + .../include/msgpack/preprocessor/seq.hpp | 44 + .../include/msgpack/preprocessor/seq/cat.hpp | 49 + .../seq/detail/binary_transform.hpp | 47 + .../preprocessor/seq/detail/is_empty.hpp | 49 + .../msgpack/preprocessor/seq/detail/split.hpp | 284 + .../preprocessor/seq/detail/to_list_msvc.hpp | 55 + .../include/msgpack/preprocessor/seq/elem.hpp | 304 + .../include/msgpack/preprocessor/seq/enum.hpp | 288 + .../msgpack/preprocessor/seq/filter.hpp | 54 + .../msgpack/preprocessor/seq/first_n.hpp | 30 + .../msgpack/preprocessor/seq/fold_left.hpp | 1070 + .../msgpack/preprocessor/seq/fold_right.hpp | 288 + .../msgpack/preprocessor/seq/for_each.hpp | 107 + .../msgpack/preprocessor/seq/for_each_i.hpp | 109 + .../preprocessor/seq/for_each_product.hpp | 126 + .../msgpack/preprocessor/seq/insert.hpp | 28 + .../msgpack/preprocessor/seq/pop_back.hpp | 29 + .../msgpack/preprocessor/seq/pop_front.hpp | 27 + .../msgpack/preprocessor/seq/push_back.hpp | 19 + .../msgpack/preprocessor/seq/push_front.hpp | 19 + .../msgpack/preprocessor/seq/remove.hpp | 29 + .../msgpack/preprocessor/seq/replace.hpp | 45 + .../msgpack/preprocessor/seq/rest_n.hpp | 46 + .../msgpack/preprocessor/seq/reverse.hpp | 39 + .../include/msgpack/preprocessor/seq/seq.hpp | 44 + .../include/msgpack/preprocessor/seq/size.hpp | 548 + .../msgpack/preprocessor/seq/subseq.hpp | 28 + .../msgpack/preprocessor/seq/to_array.hpp | 28 + .../msgpack/preprocessor/seq/to_list.hpp | 41 + .../msgpack/preprocessor/seq/to_tuple.hpp | 27 + .../msgpack/preprocessor/seq/transform.hpp | 48 + .../preprocessor/seq/variadic_seq_to_seq.hpp | 28 + .../include/msgpack/preprocessor/slot.hpp | 17 + .../msgpack/preprocessor/slot/counter.hpp | 25 + .../preprocessor/slot/detail/counter.hpp | 269 + .../msgpack/preprocessor/slot/detail/def.hpp | 49 + .../preprocessor/slot/detail/shared.hpp | 247 + .../preprocessor/slot/detail/slot1.hpp | 267 + .../preprocessor/slot/detail/slot2.hpp | 267 + .../preprocessor/slot/detail/slot3.hpp | 267 + .../preprocessor/slot/detail/slot4.hpp | 267 + .../preprocessor/slot/detail/slot5.hpp | 267 + .../msgpack/preprocessor/slot/slot.hpp | 32 + .../msgpack/preprocessor/stringize.hpp | 33 + .../include/msgpack/preprocessor/tuple.hpp | 35 + .../tuple/detail/is_single_return.hpp | 28 + .../msgpack/preprocessor/tuple/eat.hpp | 115 + .../msgpack/preprocessor/tuple/elem.hpp | 201 + .../msgpack/preprocessor/tuple/enum.hpp | 22 + .../msgpack/preprocessor/tuple/insert.hpp | 37 + .../msgpack/preprocessor/tuple/pop_back.hpp | 64 + .../msgpack/preprocessor/tuple/pop_front.hpp | 65 + .../msgpack/preprocessor/tuple/push_back.hpp | 31 + .../msgpack/preprocessor/tuple/push_front.hpp | 32 + .../msgpack/preprocessor/tuple/rem.hpp | 149 + .../msgpack/preprocessor/tuple/remove.hpp | 64 + .../msgpack/preprocessor/tuple/replace.hpp | 37 + .../msgpack/preprocessor/tuple/reverse.hpp | 117 + .../msgpack/preprocessor/tuple/size.hpp | 28 + .../msgpack/preprocessor/tuple/to_array.hpp | 39 + .../msgpack/preprocessor/tuple/to_list.hpp | 118 + .../msgpack/preprocessor/tuple/to_seq.hpp | 119 + .../include/msgpack/preprocessor/variadic.hpp | 23 + .../variadic/detail/is_single_return.hpp | 28 + .../msgpack/preprocessor/variadic/elem.hpp | 94 + .../msgpack/preprocessor/variadic/size.hpp | 30 + .../preprocessor/variadic/to_array.hpp | 32 + .../msgpack/preprocessor/variadic/to_list.hpp | 25 + .../msgpack/preprocessor/variadic/to_seq.hpp | 25 + .../preprocessor/variadic/to_tuple.hpp | 24 + .../include/msgpack/preprocessor/while.hpp | 17 + .../msgpack/preprocessor/wstringize.hpp | 29 + cpp/src/msgpack-c/include/msgpack/sbuffer.hpp | 17 + .../include/msgpack/sbuffer_decl.hpp | 18 + cpp/src/msgpack-c/include/msgpack/sysdep.hpp | 206 + cpp/src/msgpack-c/include/msgpack/type.hpp | 78 + cpp/src/msgpack-c/include/msgpack/unpack.hpp | 19 + .../msgpack-c/include/msgpack/unpack_decl.hpp | 17 + .../include/msgpack/unpack_define.hpp | 75 + .../include/msgpack/unpack_exception.hpp | 15 + .../msgpack/v1/adaptor/adaptor_base.hpp | 116 + .../msgpack/v1/adaptor/adaptor_base_decl.hpp | 86 + .../include/msgpack/v1/adaptor/array_ref.hpp | 305 + .../msgpack/v1/adaptor/array_ref_decl.hpp | 56 + .../include/msgpack/v1/adaptor/bool.hpp | 67 + .../msgpack/v1/adaptor/boost/fusion.hpp | 216 + .../v1/adaptor/boost/msgpack_variant.hpp | 451 + .../v1/adaptor/boost/msgpack_variant_decl.hpp | 60 + .../msgpack/v1/adaptor/boost/optional.hpp | 106 + .../msgpack/v1/adaptor/boost/string_ref.hpp | 88 + .../msgpack/v1/adaptor/boost/string_view.hpp | 88 + .../include/msgpack/v1/adaptor/carray.hpp | 253 + .../include/msgpack/v1/adaptor/char_ptr.hpp | 92 + .../v1/adaptor/check_container_size.hpp | 67 + .../v1/adaptor/check_container_size_decl.hpp | 44 + .../include/msgpack/v1/adaptor/complex.hpp | 91 + .../msgpack/v1/adaptor/cpp11/array.hpp | 139 + .../msgpack/v1/adaptor/cpp11/array_char.hpp | 98 + .../v1/adaptor/cpp11/array_unsigned_char.hpp | 98 + .../msgpack/v1/adaptor/cpp11/chrono.hpp | 255 + .../msgpack/v1/adaptor/cpp11/forward_list.hpp | 95 + .../v1/adaptor/cpp11/reference_wrapper.hpp | 69 + .../msgpack/v1/adaptor/cpp11/shared_ptr.hpp | 83 + .../msgpack/v1/adaptor/cpp11/timespec.hpp | 141 + .../msgpack/v1/adaptor/cpp11/tuple.hpp | 182 + .../msgpack/v1/adaptor/cpp11/unique_ptr.hpp | 83 + .../v1/adaptor/cpp11/unordered_map.hpp | 183 + .../v1/adaptor/cpp11/unordered_set.hpp | 173 + .../msgpack/v1/adaptor/cpp17/array_byte.hpp | 124 + .../include/msgpack/v1/adaptor/cpp17/byte.hpp | 77 + .../msgpack/v1/adaptor/cpp17/carray_byte.hpp | 112 + .../msgpack/v1/adaptor/cpp17/optional.hpp | 93 + .../msgpack/v1/adaptor/cpp17/string_view.hpp | 89 + .../msgpack/v1/adaptor/cpp17/vector_byte.hpp | 122 + .../include/msgpack/v1/adaptor/cpp20/span.hpp | 124 + .../include/msgpack/v1/adaptor/define.hpp | 21 + .../msgpack/v1/adaptor/define_decl.hpp | 23 + .../include/msgpack/v1/adaptor/deque.hpp | 109 + .../v1/adaptor/detail/cpp03_define_array.hpp | 4481 ++++ .../detail/cpp03_define_array_decl.hpp | 135 + .../v1/adaptor/detail/cpp03_define_map.hpp | 2753 +++ .../adaptor/detail/cpp03_define_map_decl.hpp | 135 + .../v1/adaptor/detail/cpp03_msgpack_tuple.hpp | 14425 +++++++++++++ .../detail/cpp03_msgpack_tuple_decl.hpp | 317 + .../adaptor/detail/cpp11_convert_helper.hpp | 45 + .../v1/adaptor/detail/cpp11_define_array.hpp | 128 + .../detail/cpp11_define_array_decl.hpp | 40 + .../v1/adaptor/detail/cpp11_define_map.hpp | 115 + .../adaptor/detail/cpp11_define_map_decl.hpp | 38 + .../v1/adaptor/detail/cpp11_msgpack_tuple.hpp | 220 + .../detail/cpp11_msgpack_tuple_decl.hpp | 120 + .../include/msgpack/v1/adaptor/ext.hpp | 236 + .../include/msgpack/v1/adaptor/ext_decl.hpp | 38 + .../include/msgpack/v1/adaptor/fixint.hpp | 300 + .../msgpack/v1/adaptor/fixint_decl.hpp | 47 + .../include/msgpack/v1/adaptor/float.hpp | 123 + .../include/msgpack/v1/adaptor/int.hpp | 475 + .../include/msgpack/v1/adaptor/int_decl.hpp | 51 + .../include/msgpack/v1/adaptor/list.hpp | 107 + .../include/msgpack/v1/adaptor/map.hpp | 316 + .../include/msgpack/v1/adaptor/map_decl.hpp | 36 + .../msgpack/v1/adaptor/msgpack_tuple.hpp | 21 + .../msgpack/v1/adaptor/msgpack_tuple_decl.hpp | 21 + .../include/msgpack/v1/adaptor/nil.hpp | 76 + .../include/msgpack/v1/adaptor/nil_decl.hpp | 45 + .../include/msgpack/v1/adaptor/pair.hpp | 84 + .../include/msgpack/v1/adaptor/raw.hpp | 106 + .../include/msgpack/v1/adaptor/raw_decl.hpp | 37 + .../include/msgpack/v1/adaptor/set.hpp | 189 + .../msgpack/v1/adaptor/size_equal_only.hpp | 118 + .../v1/adaptor/size_equal_only_decl.hpp | 53 + .../include/msgpack/v1/adaptor/string.hpp | 88 + .../msgpack/v1/adaptor/tr1/unordered_map.hpp | 172 + .../msgpack/v1/adaptor/tr1/unordered_set.hpp | 166 + .../include/msgpack/v1/adaptor/v4raw.hpp | 105 + .../include/msgpack/v1/adaptor/v4raw_decl.hpp | 35 + .../include/msgpack/v1/adaptor/vector.hpp | 122 + .../msgpack/v1/adaptor/vector_bool.hpp | 90 + .../msgpack/v1/adaptor/vector_char.hpp | 115 + .../v1/adaptor/vector_unsigned_char.hpp | 115 + .../include/msgpack/v1/adaptor/wstring.hpp | 122 + .../include/msgpack/v1/cpp_config.hpp | 141 + .../include/msgpack/v1/cpp_config_decl.hpp | 127 + .../include/msgpack/v1/detail/cpp03_zone.hpp | 673 + .../msgpack/v1/detail/cpp03_zone_decl.hpp | 54 + .../include/msgpack/v1/detail/cpp11_zone.hpp | 369 + .../msgpack/v1/detail/cpp11_zone_decl.hpp | 55 + .../msgpack-c/include/msgpack/v1/fbuffer.hpp | 63 + .../include/msgpack/v1/fbuffer_decl.hpp | 32 + .../msgpack-c/include/msgpack/v1/iterator.hpp | 40 + .../include/msgpack/v1/iterator_decl.hpp | 40 + cpp/src/msgpack-c/include/msgpack/v1/meta.hpp | 53 + .../include/msgpack/v1/meta_decl.hpp | 57 + .../msgpack-c/include/msgpack/v1/object.hpp | 1236 ++ .../include/msgpack/v1/object_decl.hpp | 120 + .../include/msgpack/v1/object_fwd.hpp | 250 + .../include/msgpack/v1/object_fwd_decl.hpp | 77 + cpp/src/msgpack-c/include/msgpack/v1/pack.hpp | 1659 ++ .../include/msgpack/v1/pack_decl.hpp | 91 + .../include/msgpack/v1/parse_return.hpp | 36 + .../msgpack-c/include/msgpack/v1/sbuffer.hpp | 155 + .../include/msgpack/v1/sbuffer_decl.hpp | 33 + .../msgpack-c/include/msgpack/v1/unpack.hpp | 1605 ++ .../include/msgpack/v1/unpack_decl.hpp | 454 + .../include/msgpack/v1/unpack_exception.hpp | 122 + .../msgpack-c/include/msgpack/v1/version.hpp | 36 + .../include/msgpack/v1/versioning.hpp | 71 + .../include/msgpack/v1/vrefbuffer.hpp | 314 + .../include/msgpack/v1/vrefbuffer_decl.hpp | 39 + .../msgpack-c/include/msgpack/v1/zbuffer.hpp | 164 + .../include/msgpack/v1/zbuffer_decl.hpp | 37 + cpp/src/msgpack-c/include/msgpack/v1/zone.hpp | 21 + .../include/msgpack/v1/zone_decl.hpp | 21 + .../msgpack/v2/adaptor/adaptor_base.hpp | 58 + .../msgpack/v2/adaptor/adaptor_base_decl.hpp | 52 + .../msgpack/v2/adaptor/array_ref_decl.hpp | 36 + .../v2/adaptor/boost/msgpack_variant_decl.hpp | 39 + .../v2/adaptor/check_container_size_decl.hpp | 39 + .../msgpack/v2/adaptor/define_decl.hpp | 23 + .../detail/cpp03_define_array_decl.hpp | 31 + .../adaptor/detail/cpp03_define_map_decl.hpp | 31 + .../detail/cpp03_msgpack_tuple_decl.hpp | 43 + .../detail/cpp11_define_array_decl.hpp | 32 + .../adaptor/detail/cpp11_define_map_decl.hpp | 31 + .../detail/cpp11_msgpack_tuple_decl.hpp | 59 + .../include/msgpack/v2/adaptor/ext_decl.hpp | 34 + .../msgpack/v2/adaptor/fixint_decl.hpp | 43 + .../include/msgpack/v2/adaptor/int_decl.hpp | 54 + .../include/msgpack/v2/adaptor/map_decl.hpp | 33 + .../msgpack/v2/adaptor/msgpack_tuple_decl.hpp | 21 + .../include/msgpack/v2/adaptor/nil_decl.hpp | 42 + .../include/msgpack/v2/adaptor/raw_decl.hpp | 33 + .../v2/adaptor/size_equal_only_decl.hpp | 35 + .../include/msgpack/v2/adaptor/v4raw_decl.hpp | 35 + .../include/msgpack/v2/cpp_config_decl.hpp | 85 + .../msgpack/v2/create_object_visitor.hpp | 280 + .../msgpack/v2/create_object_visitor_decl.hpp | 33 + .../msgpack/v2/detail/cpp03_zone_decl.hpp | 31 + .../msgpack/v2/detail/cpp11_zone_decl.hpp | 31 + .../include/msgpack/v2/fbuffer_decl.hpp | 32 + .../include/msgpack/v2/iterator_decl.hpp | 33 + .../include/msgpack/v2/meta_decl.hpp | 50 + .../include/msgpack/v2/null_visitor.hpp | 96 + .../include/msgpack/v2/null_visitor_decl.hpp | 29 + .../msgpack-c/include/msgpack/v2/object.hpp | 33 + .../include/msgpack/v2/object_decl.hpp | 53 + .../include/msgpack/v2/object_fwd.hpp | 109 + .../include/msgpack/v2/object_fwd_decl.hpp | 75 + .../include/msgpack/v2/pack_decl.hpp | 56 + .../msgpack-c/include/msgpack/v2/parse.hpp | 1071 + .../include/msgpack/v2/parse_decl.hpp | 79 + .../include/msgpack/v2/parse_return.hpp | 37 + .../include/msgpack/v2/sbuffer_decl.hpp | 33 + .../msgpack-c/include/msgpack/v2/unpack.hpp | 348 + .../include/msgpack/v2/unpack_decl.hpp | 312 + .../include/msgpack/v2/vrefbuffer_decl.hpp | 29 + .../msgpack-c/include/msgpack/v2/x3_parse.hpp | 875 + .../include/msgpack/v2/x3_parse_decl.hpp | 36 + .../include/msgpack/v2/x3_unpack.hpp | 120 + .../include/msgpack/v2/x3_unpack_decl.hpp | 71 + .../include/msgpack/v2/zbuffer_decl.hpp | 29 + .../include/msgpack/v2/zone_decl.hpp | 21 + .../msgpack/v3/adaptor/adaptor_base.hpp | 59 + .../msgpack/v3/adaptor/adaptor_base_decl.hpp | 52 + .../msgpack/v3/adaptor/array_ref_decl.hpp | 36 + .../v3/adaptor/boost/msgpack_variant_decl.hpp | 39 + .../v3/adaptor/check_container_size_decl.hpp | 39 + .../msgpack/v3/adaptor/define_decl.hpp | 23 + .../detail/cpp03_define_array_decl.hpp | 31 + .../adaptor/detail/cpp03_define_map_decl.hpp | 31 + .../detail/cpp03_msgpack_tuple_decl.hpp | 43 + .../detail/cpp11_define_array_decl.hpp | 32 + .../adaptor/detail/cpp11_define_map_decl.hpp | 31 + .../detail/cpp11_msgpack_tuple_decl.hpp | 59 + .../include/msgpack/v3/adaptor/ext_decl.hpp | 34 + .../msgpack/v3/adaptor/fixint_decl.hpp | 43 + .../include/msgpack/v3/adaptor/int_decl.hpp | 54 + .../include/msgpack/v3/adaptor/map_decl.hpp | 33 + .../msgpack/v3/adaptor/msgpack_tuple_decl.hpp | 21 + .../include/msgpack/v3/adaptor/nil_decl.hpp | 42 + .../include/msgpack/v3/adaptor/raw_decl.hpp | 33 + .../v3/adaptor/size_equal_only_decl.hpp | 35 + .../include/msgpack/v3/adaptor/v4raw_decl.hpp | 35 + .../include/msgpack/v3/cpp_config_decl.hpp | 85 + .../msgpack/v3/create_object_visitor_decl.hpp | 33 + .../msgpack/v3/detail/cpp03_zone_decl.hpp | 31 + .../msgpack/v3/detail/cpp11_zone_decl.hpp | 31 + .../include/msgpack/v3/fbuffer_decl.hpp | 32 + .../include/msgpack/v3/iterator_decl.hpp | 33 + .../include/msgpack/v3/meta_decl.hpp | 50 + .../include/msgpack/v3/null_visitor_decl.hpp | 29 + .../include/msgpack/v3/object_decl.hpp | 53 + .../include/msgpack/v3/object_fwd.hpp | 70 + .../include/msgpack/v3/object_fwd_decl.hpp | 75 + .../include/msgpack/v3/pack_decl.hpp | 55 + .../msgpack-c/include/msgpack/v3/parse.hpp | 676 + .../include/msgpack/v3/parse_decl.hpp | 49 + .../include/msgpack/v3/parse_return.hpp | 35 + .../include/msgpack/v3/sbuffer_decl.hpp | 33 + .../msgpack-c/include/msgpack/v3/unpack.hpp | 192 + .../include/msgpack/v3/unpack_decl.hpp | 304 + .../include/msgpack/v3/vrefbuffer_decl.hpp | 29 + .../include/msgpack/v3/x3_parse_decl.hpp | 34 + .../include/msgpack/v3/x3_unpack.hpp | 97 + .../include/msgpack/v3/x3_unpack_decl.hpp | 65 + .../include/msgpack/v3/zbuffer_decl.hpp | 29 + .../include/msgpack/v3/zone_decl.hpp | 21 + cpp/src/msgpack-c/include/msgpack/version.hpp | 36 + .../include/msgpack/version_master.hpp | 3 + .../msgpack-c/include/msgpack/versioning.hpp | 73 + .../msgpack-c/include/msgpack/vrefbuffer.hpp | 17 + .../include/msgpack/vrefbuffer_decl.hpp | 17 + .../msgpack-c/include/msgpack/x3_parse.hpp | 15 + .../include/msgpack/x3_parse_decl.hpp | 16 + .../msgpack-c/include/msgpack/x3_unpack.hpp | 16 + .../include/msgpack/x3_unpack_decl.hpp | 16 + cpp/src/msgpack-c/include/msgpack/zbuffer.hpp | 17 + .../include/msgpack/zbuffer_decl.hpp | 17 + cpp/src/msgpack-c/include/msgpack/zone.hpp | 17 + .../msgpack-c/include/msgpack/zone_decl.hpp | 17 + cpp/src/msgpack-c/make_file_list.sh | 9 + cpp/src/msgpack-c/makedist.sh | 38 + cpp/src/msgpack-c/msgpack-cxx-config.cmake.in | 11 + cpp/src/msgpack-c/preprocess | 23 + cpp/src/msgpack-c/test-install/CMakeLists.txt | 10 + cpp/src/msgpack-c/test-install/simple.cpp | 44 + cpp/src/msgpack-c/test/CMakeLists.txt | 115 + cpp/src/msgpack-c/test/array_ref.cpp | 319 + cpp/src/msgpack-c/test/boost_fusion.cpp | 257 + cpp/src/msgpack-c/test/boost_optional.cpp | 187 + cpp/src/msgpack-c/test/boost_string_ref.cpp | 57 + cpp/src/msgpack-c/test/boost_string_view.cpp | 62 + cpp/src/msgpack-c/test/boost_variant.cpp | 830 + cpp/src/msgpack-c/test/buffer.cpp | 103 + cpp/src/msgpack-c/test/buffer_c.cpp | 140 + cpp/src/msgpack-c/test/carray.cpp | 275 + cpp/src/msgpack-c/test/cases.cpp | 46 + cpp/src/msgpack-c/test/cases.mpac | Bin 0 -> 213 bytes cpp/src/msgpack-c/test/cases_compact.mpac | Bin 0 -> 116 bytes cpp/src/msgpack-c/test/convert.cpp | 126 + cpp/src/msgpack-c/test/fixint.cpp | 56 + .../test/fuzz_unpack_pack_fuzzer_cpp11.cpp | 9 + cpp/src/msgpack-c/test/inc_adaptor_define.cpp | 3 + cpp/src/msgpack-c/test/iterator_cpp11.cpp | 71 + cpp/src/msgpack-c/test/json.cpp | 48 + cpp/src/msgpack-c/test/limit.cpp | 587 + cpp/src/msgpack-c/test/msgpack_basic.cpp | 684 + cpp/src/msgpack-c/test/msgpack_container.cpp | 969 + cpp/src/msgpack-c/test/msgpack_cpp11.cpp | 1595 ++ cpp/src/msgpack-c/test/msgpack_cpp17.cpp | 464 + cpp/src/msgpack-c/test/msgpack_cpp20.cpp | 131 + cpp/src/msgpack-c/test/msgpack_stream.cpp | 152 + cpp/src/msgpack-c/test/msgpack_tuple.cpp | 106 + cpp/src/msgpack-c/test/msgpack_vref.cpp | 278 + cpp/src/msgpack-c/test/msgpack_x3_parse.cpp | 836 + cpp/src/msgpack-c/test/multi_file1.cpp | 1 + cpp/src/msgpack-c/test/multi_file2.cpp | 3 + cpp/src/msgpack-c/test/object.cpp | 564 + cpp/src/msgpack-c/test/object_with_zone.cpp | 1036 + cpp/src/msgpack-c/test/pack_unpack.cpp | 602 + cpp/src/msgpack-c/test/raw.cpp | 236 + cpp/src/msgpack-c/test/reference.cpp | 466 + cpp/src/msgpack-c/test/reference_cpp11.cpp | 234 + .../test/reference_wrapper_cpp11.cpp | 100 + cpp/src/msgpack-c/test/shared_ptr_cpp11.cpp | 127 + cpp/src/msgpack-c/test/size_equal_only.cpp | 226 + cpp/src/msgpack-c/test/streaming.cpp | 335 + cpp/src/msgpack-c/test/test_allocator.hpp | 105 + cpp/src/msgpack-c/test/unique_ptr_cpp11.cpp | 128 + cpp/src/msgpack-c/test/user_class.cpp | 627 + cpp/src/msgpack-c/test/version.cpp | 18 + cpp/src/msgpack-c/test/visitor.cpp | 488 + cpp/src/msgpack-c/test/zone.cpp | 95 + cpp/src/msgpack-c/update_version.sh | 17 + flake.lock | 12 +- flake.nix | 27 +- foundation | 1 + package.json | 27 + sol/.gitignore | 15 + sol/Dockerfile | 41 + sol/README.md | 80 + sol/bootstrap.sh | 32 + sol/figures/verifier.png | Bin 0 -> 29769 bytes sol/foundry.toml | 12 + sol/lib/forge-std | 1 + sol/lib/openzeppelin-contracts | 1 + sol/lib/solidity-stringutils | 1 + sol/remappings.txt | 2 + sol/scripts/init.sh | 10 + sol/scripts/install_foundry.sh | 21 + sol/scripts/run_fuzzer.sh | 12 + sol/src/interfaces/IVerifier.sol | 7 + sol/src/ultra/BaseUltraVerifier.sol | 2532 +++ sol/src/ultra/instance/Add2UltraVerifier.sol | 16 + sol/src/ultra/instance/BlakeUltraVerifier.sol | 16 + .../ultra/instance/RecursiveUltraVerifier.sol | 16 + .../ultra/keys/Add2UltraVerificationKey.sol | 72 + .../ultra/keys/BlakeUltraVerificationKey.sol | 72 + .../keys/RecursiveUltraVerificationKey.sol | 72 + sol/test/base/DifferentialFuzzer.sol | 101 + sol/test/base/TestBase.sol | 162 + sol/test/ultra/Add2.t.sol | 40 + sol/test/ultra/Blake.t.sol | 42 + sol/test/ultra/Recursive.t.sol | 40 + sol/test/ultra/TestBaseUltra.sol | 23 + ts/.eslintrc.cjs | 2 +- ts/.gitignore | 4 - ts/.pnp.cjs | 17405 ---------------- ts/.pnp.loader.mjs | 2042 -- ts/.yalc/@aztec/eslint-config/index.js | 92 - ts/.yalc/@aztec/eslint-config/package.json | 22 - ts/.yalc/@aztec/eslint-config/yalc.sig | 1 - ts/.yalc/@aztec/log/.eslintrc.cjs | 6 - ts/.yalc/@aztec/log/.tsbuildinfo | 1 - ts/.yalc/@aztec/log/Dockerfile | 16 - ts/.yalc/@aztec/log/README.md | 1 - ts/.yalc/@aztec/log/package.json | 18 - ts/.yalc/@aztec/log/src/index.ts | 12 - ts/.yalc/@aztec/log/tsconfig.dest.json | 4 - ts/.yalc/@aztec/log/tsconfig.json | 9 - ts/.yalc/@aztec/log/yalc.sig | 1 - ts/.yalc/@aztec/wasm-worker/.eslintrc.cjs | 6 - ts/.yalc/@aztec/wasm-worker/.tsbuildinfo | 1 - ts/.yalc/@aztec/wasm-worker/Dockerfile | 14 - ts/.yalc/@aztec/wasm-worker/README.md | 10 - ts/.yalc/@aztec/wasm-worker/package.json | 42 - ts/.yalc/@aztec/wasm-worker/src/index.ts | 5 - .../@aztec/wasm-worker/src/memory_fifo.ts | 104 - ts/.yalc/@aztec/wasm-worker/src/test/gcd.wasm | Bin 76 -> 0 bytes ts/.yalc/@aztec/wasm-worker/src/test/gcd.wat | 27 - .../src/transport/browser/index.ts | 4 - .../transport/browser/message_port_socket.ts | 39 - .../browser/shared_worker_connector.ts | 21 - .../browser/shared_worker_listener.ts | 52 - .../src/transport/browser/worker_connector.ts | 22 - .../src/transport/browser/worker_listener.ts | 52 - .../transport/dispatch/create_dispatch_fn.ts | 24 - .../dispatch/create_dispatch_proxy.ts | 88 - .../src/transport/dispatch/messages.ts | 51 - .../@aztec/wasm-worker/src/transport/index.ts | 11 - .../src/transport/interface/connector.ts | 8 - .../src/transport/interface/listener.ts | 14 - .../src/transport/interface/socket.ts | 12 - .../src/transport/interface/transferable.ts | 92 - .../wasm-worker/src/transport/node/index.ts | 2 - .../src/transport/node/node_connector.ts | 18 - .../transport/node/node_connector_socket.ts | 36 - .../src/transport/node/node_listener.ts | 25 - .../transport/node/node_listener_socket.ts | 37 - .../src/transport/transport_client.ts | 106 - .../src/transport/transport_server.ts | 96 - .../wasm-worker/src/wasm/async_call_state.ts | 136 - .../wasm-worker/src/wasm/empty_wasi_sdk.ts | 61 - ts/.yalc/@aztec/wasm-worker/src/wasm/index.ts | 2 - .../wasm-worker/src/wasm/wasm_module.test.ts | 27 - .../wasm-worker/src/wasm/wasm_module.ts | 206 - .../wasm-worker/src/worker/browser/index.ts | 2 - .../src/worker/browser/start_web_module.ts | 23 - .../src/worker/browser/web_data_store.ts | 37 - .../src/worker/browser/web_worker.ts | 20 - .../wasm-worker/src/worker/data_store.ts | 7 - .../@aztec/wasm-worker/src/worker/index.ts | 1 - .../wasm-worker/src/worker/node/index.ts | 2 - .../src/worker/node/node_data_store.ts | 36 - .../src/worker/node/node_worker.ts | 22 - .../src/worker/node/start_node_module.ts | 28 - .../wasm-worker/src/worker/wasm_worker.ts | 7 - .../wasm-worker/src/worker/worker_pool.ts | 73 - .../@aztec/wasm-worker/tsconfig.dest.json | 4 - ts/.yalc/@aztec/wasm-worker/tsconfig.json | 9 - ts/.yalc/@aztec/wasm-worker/yalc.sig | 1 - ts/.yarnrc.yml | 3 - ts/README.md | 8 +- ts/package.json | 20 +- ts/src/crs/index.ts | 166 + ts/src/crypto/index.ts | 1 - ts/src/crypto/pedersen/index.ts | 1 - ts/src/crypto/pedersen/pedersen.test.ts | 33 - ts/src/crypto/pedersen/pedersen.ts | 112 - ts/src/index.ts | 3 + ts/src/wasm/barretenberg.wasm | 1 - ts/src/wasm/barretenberg_wasm.test.ts | 30 - ts/src/wasm/barretenberg_wasm.ts | 134 +- ts/src/wasm/index.ts | 1 - ts/src/wasm/serialize.ts | 74 - ts/tsconfig.dest.json | 7 +- ts/tsconfig.json | 12 +- ts/yalc.lock | 18 - wasi-sdk.nix | 48 + ts/yarn.lock => yarn.lock | 1442 +- 1585 files changed, 163069 insertions(+), 32221 deletions(-) delete mode 100755 .circleci/bin/jq delete mode 100755 .circleci/build delete mode 100755 .circleci/build_local delete mode 100755 .circleci/changed delete mode 100755 .circleci/check_rebuild delete mode 100755 .circleci/cond_spot_run_build delete mode 100755 .circleci/cond_spot_run_script rename .circleci/{cond_spot_run_tests => cond_spot_run_test_script} (51%) delete mode 100755 .circleci/ensure_repo delete mode 100755 .circleci/ensure_terraform delete mode 100755 .circleci/erase_image_tags delete mode 100755 .circleci/image_exists delete mode 100755 .circleci/last_successful_commit delete mode 100644 .circleci/lib/libjq.so.1 delete mode 100644 .circleci/lib/libonig.so.5 delete mode 100755 .circleci/query_manifest delete mode 100644 .circleci/remote/32core.json delete mode 100644 .circleci/remote/64core.json delete mode 100644 .circleci/remote/ssh_config delete mode 100755 .circleci/remote_build/remote_build delete mode 100755 .circleci/remote_run_script delete mode 100755 .circleci/request_spot delete mode 100755 .circleci/setup_env delete mode 100755 .circleci/spot_run_script delete mode 100755 .circleci/store_test_benchmark_logs delete mode 100755 .circleci/tag_remote_image delete mode 100755 .circleci/untag_remote_image create mode 100644 .dockerignore create mode 100644 .github/workflows/noir.yml create mode 100644 .gitmodules create mode 100644 .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs create mode 100755 .yarn/releases/yarn-3.4.1.cjs create mode 100644 .yarnrc.yml create mode 100644 PROJECT create mode 100644 VERSION create mode 100644 barretenberg-wasm.nix create mode 160000 build-system create mode 100644 cpp/.aztec-packages-commit create mode 100644 cpp/dockerfiles/Dockerfile.circuits-wasm-linux-clang-builder-runner create mode 100644 cpp/dockerfiles/Dockerfile.circuits-x86_64-linux-clang-builder-runner create mode 100644 cpp/dockerfiles/Dockerfile.x86_64-linux-clang-benchmarks create mode 100755 cpp/scripts/run_aztec_circuits_tests create mode 100644 cpp/scripts/stdlib-tests create mode 100644 cpp/src/barretenberg/crypto/ecdsa/c_bind.cpp create mode 100644 cpp/src/barretenberg/crypto/ecdsa/c_bind.h create mode 100644 cpp/src/barretenberg/crypto/generators/CMakeLists.txt rename cpp/src/barretenberg/crypto/{pedersen => generators}/fixed_base_scalar_mul.hpp (89%) rename cpp/src/barretenberg/crypto/{pedersen => generators}/generator_data.cpp (77%) rename cpp/src/barretenberg/crypto/{pedersen => generators}/generator_data.hpp (97%) rename cpp/src/barretenberg/crypto/{pedersen/pedersen.test.cpp => generators/generator_data.test.cpp} (93%) delete mode 100644 cpp/src/barretenberg/crypto/pedersen/CMakeLists.txt delete mode 100644 cpp/src/barretenberg/crypto/pedersen/pedersen.hpp delete mode 100644 cpp/src/barretenberg/crypto/pedersen/pedersen_lookup.test.cpp create mode 100644 cpp/src/barretenberg/crypto/pedersen_commitment/CMakeLists.txt create mode 100644 cpp/src/barretenberg/crypto/pedersen_commitment/c_bind.cpp rename cpp/src/barretenberg/crypto/{pedersen => pedersen_commitment}/c_bind.hpp (70%) rename cpp/src/barretenberg/crypto/{pedersen => pedersen_commitment}/convert_buffer_to_field.hpp (71%) rename cpp/src/barretenberg/crypto/{pedersen => pedersen_commitment}/pedersen.cpp (62%) create mode 100644 cpp/src/barretenberg/crypto/pedersen_commitment/pedersen.hpp create mode 100644 cpp/src/barretenberg/crypto/pedersen_commitment/pedersen_lookup.cpp create mode 100644 cpp/src/barretenberg/crypto/pedersen_commitment/pedersen_lookup.hpp create mode 100644 cpp/src/barretenberg/crypto/pedersen_commitment/pedersen_lookup.test.cpp rename cpp/src/barretenberg/crypto/{pedersen => pedersen_commitment}/sidon_set/sidon_set.hpp (99%) rename cpp/src/barretenberg/crypto/{pedersen => pedersen_commitment}/sidon_set/sidon_set.test.cpp (99%) create mode 100644 cpp/src/barretenberg/crypto/pedersen_hash/CMakeLists.txt rename cpp/src/barretenberg/crypto/{pedersen => pedersen_hash}/c_bind.cpp (54%) create mode 100644 cpp/src/barretenberg/crypto/pedersen_hash/c_bind.hpp create mode 100644 cpp/src/barretenberg/crypto/pedersen_hash/pedersen.cpp create mode 100644 cpp/src/barretenberg/crypto/pedersen_hash/pedersen.hpp rename cpp/src/barretenberg/crypto/{pedersen => pedersen_hash}/pedersen_lookup.cpp (70%) rename cpp/src/barretenberg/crypto/{pedersen => pedersen_hash}/pedersen_lookup.hpp (64%) create mode 100644 cpp/src/barretenberg/dsl/acir_format/acir_format.test.cpp create mode 100644 cpp/src/barretenberg/dsl/acir_format/block_constraint.cpp create mode 100644 cpp/src/barretenberg/dsl/acir_format/block_constraint.hpp create mode 100644 cpp/src/barretenberg/dsl/acir_format/block_constraint.test.cpp rename cpp/src/barretenberg/dsl/acir_format/{merkle_membership_constraint.cpp => compute_merkle_root_constraint.cpp} (61%) rename cpp/src/barretenberg/dsl/acir_format/{merkle_membership_constraint.hpp => compute_merkle_root_constraint.hpp} (52%) create mode 100644 cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.test.cpp create mode 100644 cpp/src/barretenberg/dsl/acir_format/keccak_constraint.cpp create mode 100644 cpp/src/barretenberg/dsl/acir_format/keccak_constraint.hpp rename cpp/src/barretenberg/dsl/{turbo_proofs => acir_proofs}/CMakeLists.txt (74%) rename cpp/src/barretenberg/dsl/{turbo_proofs/turbo_proofs.cpp => acir_proofs/acir_proofs.cpp} (51%) create mode 100644 cpp/src/barretenberg/dsl/acir_proofs/acir_proofs.hpp create mode 100644 cpp/src/barretenberg/dsl/acir_proofs/c_bind.cpp create mode 100644 cpp/src/barretenberg/dsl/acir_proofs/c_bind.hpp delete mode 100644 cpp/src/barretenberg/dsl/turbo_proofs/c_bind.cpp delete mode 100644 cpp/src/barretenberg/dsl/turbo_proofs/c_bind.hpp delete mode 100644 cpp/src/barretenberg/dsl/turbo_proofs/turbo_proofs.hpp create mode 100644 cpp/src/barretenberg/dsl/types.hpp create mode 100644 cpp/src/barretenberg/ecc/curves/secp256k1/c_bind.cpp create mode 100644 cpp/src/barretenberg/ecc/curves/secp256k1/c_bind.hpp create mode 100644 cpp/src/barretenberg/ecc/serialize.test.cpp create mode 100644 cpp/src/barretenberg/env/crs.cpp create mode 100644 cpp/src/barretenberg/env/crs.hpp delete mode 100644 cpp/src/barretenberg/honk/composer/composer_helper/composer_helper_lib.cpp delete mode 100644 cpp/src/barretenberg/honk/composer/composer_helper/composer_helper_lib.hpp create mode 100644 cpp/src/barretenberg/honk/composer/composer_helper/ultra_honk_composer_helper.cpp create mode 100644 cpp/src/barretenberg/honk/composer/composer_helper/ultra_honk_composer_helper.hpp create mode 100644 cpp/src/barretenberg/honk/composer/ultra_honk_composer.hpp create mode 100644 cpp/src/barretenberg/honk/composer/ultra_honk_composer.test.cpp create mode 100644 cpp/src/barretenberg/honk/flavor/flavor.test.cpp create mode 100644 cpp/src/barretenberg/honk/flavor/standard.hpp create mode 100644 cpp/src/barretenberg/honk/flavor/ultra.hpp create mode 100644 cpp/src/barretenberg/honk/proof_system/composer_helper.lib.hpp delete mode 100644 cpp/src/barretenberg/honk/proof_system/program_settings.hpp delete mode 100644 cpp/src/barretenberg/honk/proof_system/prover.test.cpp create mode 100644 cpp/src/barretenberg/honk/proof_system/prover_library.cpp create mode 100644 cpp/src/barretenberg/honk/proof_system/prover_library.hpp create mode 100644 cpp/src/barretenberg/honk/proof_system/prover_library.test.cpp create mode 100644 cpp/src/barretenberg/honk/proof_system/ultra_prover.cpp create mode 100644 cpp/src/barretenberg/honk/proof_system/ultra_prover.hpp create mode 100644 cpp/src/barretenberg/honk/proof_system/ultra_verifier.cpp create mode 100644 cpp/src/barretenberg/honk/proof_system/ultra_verifier.hpp delete mode 100644 cpp/src/barretenberg/honk/proof_system/verifier.test.cpp create mode 100644 cpp/src/barretenberg/honk/proof_system/work_queue.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/auxiliary_relation.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/elliptic_relation.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/gen_perm_sort_relation.hpp delete mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/grand_product_computation_relation.hpp delete mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/grand_product_initialization_relation.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/lookup_relation.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/permutation_relation.hpp delete mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/relation.hpp delete mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/relation.test.cpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/relation_consistency.test.cpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/relation_correctness.test.cpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/relation_parameters.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/ultra_arithmetic_relation.hpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/relations/ultra_relation_consistency.test.cpp create mode 100644 cpp/src/barretenberg/honk/sumcheck/sumcheck_output.hpp create mode 100644 cpp/src/barretenberg/honk/transcript/transcript.hpp create mode 100644 cpp/src/barretenberg/honk/transcript/transcript.test.cpp rename cpp/src/barretenberg/honk/utils/{public_inputs.hpp => grand_product_delta.hpp} (70%) create mode 100644 cpp/src/barretenberg/join_split_example/types.hpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/composer_helper/composer_helper_lib.cpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/composer_helper/composer_helper_lib.hpp rename cpp/src/barretenberg/{honk/composer => plonk/composer/splitting_tmp}/composer_helper/standard_plonk_composer_helper.cpp (60%) rename cpp/src/barretenberg/{honk/composer => plonk/composer/splitting_tmp}/composer_helper/standard_plonk_composer_helper.hpp (77%) create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/composer_helper/turbo_plonk_composer_helper.cpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/composer_helper/turbo_plonk_composer_helper.hpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/composer_helper/ultra_plonk_composer_helper.cpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/composer_helper/ultra_plonk_composer_helper.hpp rename cpp/src/barretenberg/{honk/composer => plonk/composer/splitting_tmp}/standard_plonk_composer.hpp (82%) rename cpp/src/barretenberg/{honk/composer => plonk/composer/splitting_tmp}/standard_plonk_composer.test.cpp (69%) create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/turbo_plonk_composer.hpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/turbo_plonk_composer.test.cpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/ultra_plonk_composer.hpp create mode 100644 cpp/src/barretenberg/plonk/composer/splitting_tmp/ultra_plonk_composer.test.cpp create mode 100644 cpp/src/barretenberg/plonk/flavor/flavor.hpp delete mode 100644 cpp/src/barretenberg/plonk/proof_system/prover/c_bind_unrolled.cpp rename cpp/src/barretenberg/{ => plonk}/proof_system/proving_key/proving_key.cpp (92%) rename cpp/src/barretenberg/{ => plonk}/proof_system/proving_key/proving_key.hpp (92%) rename cpp/src/barretenberg/{ => plonk}/proof_system/proving_key/proving_key.test.cpp (65%) rename cpp/src/barretenberg/{ => plonk}/proof_system/proving_key/serialize.hpp (98%) rename cpp/src/barretenberg/{ => plonk}/proof_system/types/polynomial_manifest.hpp (88%) create mode 100644 cpp/src/barretenberg/plonk/proof_system/verification_key/sol_gen.hpp rename cpp/src/barretenberg/{ => plonk}/proof_system/verification_key/verification_key.cpp (50%) create mode 100644 cpp/src/barretenberg/plonk/proof_system/verification_key/verification_key.hpp create mode 100644 cpp/src/barretenberg/plonk/proof_system/verification_key/verification_key.test.cpp create mode 100644 cpp/src/barretenberg/proof_system/arithmetization/arithmetization.hpp rename cpp/src/barretenberg/proof_system/{composer/composer_base.hpp => arithmetization/gate_data.hpp} (98%) rename cpp/src/barretenberg/{honk => proof_system}/circuit_constructors/circuit_constructor_base.cpp (72%) rename cpp/src/barretenberg/{honk => proof_system}/circuit_constructors/circuit_constructor_base.hpp (95%) rename cpp/src/barretenberg/{honk => proof_system}/circuit_constructors/standard_circuit_constructor.cpp (63%) rename cpp/src/barretenberg/{honk => proof_system}/circuit_constructors/standard_circuit_constructor.hpp (83%) rename cpp/src/barretenberg/{honk => proof_system}/circuit_constructors/standard_circuit_constructor.test.cpp (71%) create mode 100644 cpp/src/barretenberg/proof_system/circuit_constructors/turbo_circuit_constructor.cpp create mode 100644 cpp/src/barretenberg/proof_system/circuit_constructors/turbo_circuit_constructor.hpp create mode 100644 cpp/src/barretenberg/proof_system/circuit_constructors/turbo_circuit_constructor.test.cpp create mode 100644 cpp/src/barretenberg/proof_system/circuit_constructors/ultra_circuit_constructor.cpp create mode 100644 cpp/src/barretenberg/proof_system/circuit_constructors/ultra_circuit_constructor.hpp create mode 100644 cpp/src/barretenberg/proof_system/circuit_constructors/ultra_circuit_constructor.test.cpp create mode 100644 cpp/src/barretenberg/proof_system/composer/composer_helper_lib.hpp create mode 100644 cpp/src/barretenberg/proof_system/composer/composer_helper_lib.test.cpp rename cpp/src/barretenberg/{honk/composer/composer_helper => proof_system/composer}/permutation_helper.hpp (53%) create mode 100644 cpp/src/barretenberg/proof_system/composer/permutation_helper.test.cpp delete mode 100644 cpp/src/barretenberg/proof_system/flavor/flavor.test.cpp rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/aes128.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/blake2s.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/keccak/keccak_chi.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/keccak/keccak_input.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/keccak/keccak_output.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/keccak/keccak_rho.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/keccak/keccak_theta.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/non_native_group_generator.cpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/non_native_group_generator.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/pedersen.hpp (77%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/plookup_tables.cpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/plookup_tables.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/sha256.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/sparse.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/types.hpp (100%) rename cpp/src/barretenberg/{plonk/composer => proof_system}/plookup_tables/uint.hpp (98%) create mode 100644 cpp/src/barretenberg/proof_system/types/composer_type.hpp create mode 100644 cpp/src/barretenberg/proof_system/types/merkle_hash_type.hpp create mode 100644 cpp/src/barretenberg/proof_system/types/pedersen_commitment_type.hpp delete mode 100644 cpp/src/barretenberg/proof_system/verification_key/sol_gen.hpp delete mode 100644 cpp/src/barretenberg/proof_system/verification_key/verification_key.hpp delete mode 100644 cpp/src/barretenberg/proof_system/verification_key/verification_key.test.cpp create mode 100644 cpp/src/barretenberg/serialize/CMakeLists.txt create mode 100644 cpp/src/barretenberg/serialize/cbind.hpp create mode 100644 cpp/src/barretenberg/serialize/cbind_fwd.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/check_memory_span.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/concepts.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/func_traits.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/msgpack_impl.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/name_value_pair_macro.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/schema_impl.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/schema_name.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/struct_map_impl.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_impl/variant_impl.hpp create mode 100644 cpp/src/barretenberg/serialize/msgpack_schema.test.cpp create mode 100644 cpp/src/barretenberg/serialize/raw_pointer.hpp create mode 100644 cpp/src/barretenberg/serialize/test_helper.hpp create mode 100644 cpp/src/barretenberg/solidity_helpers/CMakeLists.txt create mode 100644 cpp/src/barretenberg/solidity_helpers/circuits/add_2_circuit.hpp create mode 100644 cpp/src/barretenberg/solidity_helpers/circuits/blake_circuit.hpp create mode 100644 cpp/src/barretenberg/solidity_helpers/circuits/recursive_circuit.hpp create mode 100644 cpp/src/barretenberg/solidity_helpers/key_gen.cpp create mode 100644 cpp/src/barretenberg/solidity_helpers/proof_gen.cpp create mode 100644 cpp/src/barretenberg/solidity_helpers/utils/instance_sol_gen.hpp create mode 100644 cpp/src/barretenberg/solidity_helpers/utils/utils.hpp create mode 100644 cpp/src/barretenberg/srs/reference_string/env_reference_string.hpp create mode 100644 cpp/src/barretenberg/srs/reference_string/env_reference_string.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/commitment/CMakeLists.txt create mode 100644 cpp/src/barretenberg/stdlib/commitment/pedersen/CMakeLists.txt rename cpp/src/barretenberg/stdlib/{hash => commitment}/pedersen/pedersen.bench.cpp (92%) create mode 100644 cpp/src/barretenberg/stdlib/commitment/pedersen/pedersen.cpp create mode 100644 cpp/src/barretenberg/stdlib/commitment/pedersen/pedersen.hpp rename cpp/src/barretenberg/stdlib/{hash => commitment}/pedersen/pedersen.test.cpp (71%) create mode 100644 cpp/src/barretenberg/stdlib/commitment/pedersen/pedersen_plookup.cpp create mode 100644 cpp/src/barretenberg/stdlib/commitment/pedersen/pedersen_plookup.hpp create mode 100644 cpp/src/barretenberg/stdlib/commitment/pedersen/pedersen_plookup.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/hash/benchmarks/CMakeLists.txt create mode 100644 cpp/src/barretenberg/stdlib/hash/benchmarks/external/CMakeLists.txt create mode 100644 cpp/src/barretenberg/stdlib/hash/benchmarks/external/external.bench.cpp create mode 100644 cpp/src/barretenberg/stdlib/hash/benchmarks/sha256/CMakeLists.txt rename cpp/src/barretenberg/stdlib/hash/{ => benchmarks}/sha256/sha256.bench.cpp (83%) create mode 100644 cpp/src/barretenberg/stdlib/hash/pedersen/pedersen_gates.hpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_leaf.hpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_memory_tree.cpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_memory_tree.hpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_memory_tree.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_tree.cpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_tree.hpp create mode 100644 cpp/src/barretenberg/stdlib/merkle_tree/nullifier_tree/nullifier_tree.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/address/address.hpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/field/array.hpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/field/array.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/logic/logic.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/logic/logic.hpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/logic/logic.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/memory/dynamic_array.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/memory/dynamic_array.hpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/memory/dynamic_array.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/memory/ram_table.cpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/memory/ram_table.hpp create mode 100644 cpp/src/barretenberg/stdlib/primitives/memory/ram_table.test.cpp create mode 100644 cpp/src/barretenberg/stdlib/recursion/aggregation_state/aggregation_state.hpp create mode 100644 cpp/src/barretenberg/stdlib/recursion/aggregation_state/native_aggregation_state.hpp create mode 100644 cpp/src/barretenberg/stdlib/recursion/verification_key/verification_key.test.cpp delete mode 100644 cpp/src/barretenberg/stdlib/types/types.hpp create mode 100644 cpp/src/msgpack-c/.clang-format create mode 100755 cpp/src/msgpack-c/.github/depends/boost.sh create mode 100755 cpp/src/msgpack-c/.github/depends/zlib.sh create mode 100644 cpp/src/msgpack-c/.github/workflows/coverage.yml create mode 100644 cpp/src/msgpack-c/.github/workflows/gha.yml create mode 100644 cpp/src/msgpack-c/.gitignore create mode 100644 cpp/src/msgpack-c/CHANGELOG.md create mode 100644 cpp/src/msgpack-c/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/COPYING create mode 100644 cpp/src/msgpack-c/Doxyfile create mode 100644 cpp/src/msgpack-c/Files.cmake create mode 100644 cpp/src/msgpack-c/LICENSE_1_0.txt create mode 100644 cpp/src/msgpack-c/NOTICE create mode 100644 cpp/src/msgpack-c/QUICKSTART-CPP.md create mode 100644 cpp/src/msgpack-c/README.md create mode 100644 cpp/src/msgpack-c/appveyor.yml create mode 100755 cpp/src/msgpack-c/ci/build_cmake.sh create mode 100755 cpp/src/msgpack-c/ci/build_regression.sh create mode 100755 cpp/src/msgpack-c/ci/set_gcc_10.sh create mode 100644 cpp/src/msgpack-c/cmake/CodeCoverage.cmake create mode 100644 cpp/src/msgpack-c/codecov.yml create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_define_array.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_define_array_decl.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_define_map.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_define_map_decl.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_msgpack_tuple.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_msgpack_tuple_decl.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_zone.hpp.erb create mode 100644 cpp/src/msgpack-c/erb/v1/cpp03_zone_decl.hpp.erb create mode 100644 cpp/src/msgpack-c/example/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/example/boost/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/example/boost/asio_send_recv.cpp create mode 100644 cpp/src/msgpack-c/example/boost/asio_send_recv_zlib.cpp create mode 100644 cpp/src/msgpack-c/example/boost/msgpack_variant_capitalize.cpp create mode 100644 cpp/src/msgpack-c/example/boost/msgpack_variant_mapbased.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/example/cpp03/class_intrusive.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/class_intrusive_map.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/class_non_intrusive.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/custom.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/enum.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/map_based_versionup.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/protocol.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/protocol_new.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/reuse_zone.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/simple.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/speed_test.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/speed_test_nested_array.cpp create mode 100644 cpp/src/msgpack-c/example/cpp03/stream.cpp create mode 100644 cpp/src/msgpack-c/example/cpp11/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/example/cpp11/container.cpp create mode 100644 cpp/src/msgpack-c/example/cpp11/non_def_con_class.cpp create mode 100644 cpp/src/msgpack-c/example/cpp11/socket_stream_example.cpp create mode 100644 cpp/src/msgpack-c/example/x3/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/example/x3/parse.cpp create mode 100644 cpp/src/msgpack-c/example/x3/stream_unpack.cpp create mode 100644 cpp/src/msgpack-c/example/x3/unpack.cpp create mode 100644 cpp/src/msgpack-c/fuzz/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/fuzz/regression_runner.cpp create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer.cpp create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_regressions/clusterfuzz-testcase-minimized-unpack_pack_fuzzer-5656982724804608 create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_regressions/clusterfuzz-testcase-minimized-unpack_pack_fuzzer-6022481354686464 create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_seed_corpus/EmptyArray create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_seed_corpus/EmptyObject create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_seed_corpus/ExcessiveNesting create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_seed_corpus/OpenWeatherMap create mode 100644 cpp/src/msgpack-c/fuzz/unpack_pack_fuzzer_seed_corpus/WeatherUnderground create mode 100644 cpp/src/msgpack-c/include/msgpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/adaptor_base.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/adaptor_base_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/array_ref.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/array_ref_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/bool.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/boost/fusion.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/boost/msgpack_variant.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/boost/optional.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/boost/string_ref.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/boost/string_view.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/carray.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/char_ptr.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/check_container_size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/check_container_size_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/complex.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/array_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/array_unsigned_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/chrono.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/forward_list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/reference_wrapper.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/shared_ptr.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/timespec.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/unique_ptr.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/unordered_map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp11/unordered_set.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp17/array_byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp17/byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp17/carray_byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp17/optional.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp17/string_view.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp17/vector_byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/cpp20/span.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/define.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/define_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/deque.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/ext.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/ext_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/fixint.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/fixint_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/float.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/int.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/int_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/msgpack_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/nil.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/nil_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/pair.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/raw.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/set.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/size_equal_only.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/size_equal_only_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/string.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/tr1/unordered_map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/tr1/unordered_set.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/v4raw.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/v4raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/vector.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/vector_bool.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/vector_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/vector_unsigned_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/adaptor/wstring.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/assert.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/cpp_config.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/cpp_config_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/cpp_version.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/create_object_visitor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/create_object_visitor_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/fbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/fbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/gcc_atomic.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/iterator.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/iterator_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/meta.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/meta_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/null_visitor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/null_visitor_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/object.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/object_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/object_fwd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/object_fwd_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/pack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/pack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/parse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/parse_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/parse_return.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/predef.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/alpha.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/arm.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/blackfin.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/convex.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/ia64.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/m68k.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/mips.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/parisc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/ppc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/ptx.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/pyramid.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/rs6k.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/sparc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/superh.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/sys370.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/sys390.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/x86.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/x86/32.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/x86/64.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/architecture/z.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/borland.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/clang.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/comeau.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/compaq.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/diab.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/digitalmars.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/dignus.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/edg.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/ekopath.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/gcc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/gcc_xml.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/greenhills.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/hp_acc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/iar.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/ibm.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/intel.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/kai.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/llvm.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/metaware.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/metrowerks.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/microtec.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/mpw.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/nvcc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/palm.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/pgi.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/sgi_mipspro.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/sunpro.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/tendra.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/visualc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/compiler/watcom.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/_cassert.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/_exception.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/comp_detected.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/endian_compat.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/os_detected.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/platform_detected.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/test.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/detail/test_def.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/arm.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/arm/versions.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/ppc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/ppc/versions.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/x86.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/x86/versions.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/x86_amd.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/hardware/simd/x86_amd/versions.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/language.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/language/cuda.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/language/objc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/language/stdc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/language/stdcpp.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c/_prefix.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c/cloudabi.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c/gnu.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c/uc.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c/vms.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/c/zos.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/_prefix.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/cxx.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/dinkumware.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/libcomo.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/modena.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/msl.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/roguewave.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/sgi.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/stdcpp3.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/stlport.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/library/std/vacpp.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/make.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/aix.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/amigaos.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/android.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/beos.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/bsd.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/bsd/bsdi.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/bsd/dragonfly.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/bsd/free.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/bsd/net.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/bsd/open.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/cygwin.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/haiku.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/hpux.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/ios.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/irix.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/linux.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/macos.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/os400.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/qnxnto.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/solaris.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/unix.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/vms.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/os/windows.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/other.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/other/endian.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/other/workaround.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/cloudabi.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/ios.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/mingw.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/mingw32.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/mingw64.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_desktop.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_phone.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_runtime.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_server.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_store.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_system.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/platform/windows_uwp.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/version.h create mode 100644 cpp/src/msgpack-c/include/msgpack/predef/version_number.h create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/add.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/dec.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/detail/div_base.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/div.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/inc.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/mod.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/mul.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/arithmetic/sub.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/data.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/detail/get_data.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/elem.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/enum.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/insert.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/pop_back.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/pop_front.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/push_back.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/push_front.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/remove.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/replace.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/reverse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/to_list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/to_seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/array/to_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/assert_msg.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/cat.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comma.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comma_if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison/equal.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison/greater.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison/greater_equal.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison/less.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison/less_equal.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/comparison/not_equal.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/config/config.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/config/limits.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/deduce_d.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/detail/dmc/while.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/detail/edg/while.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/detail/msvc/while.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/detail/while.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/expr_if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/expr_iif.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/iif.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/control/while.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/debug.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/debug/assert.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/debug/error.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/debug/line.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/dec.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/auto_rec.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/check.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/dmc/auto_rec.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/is_binary.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/is_nullary.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/is_unary.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/null.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/detail/split.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/empty.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/enum.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/enum_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/enum_params_with_a_default.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/enum_params_with_defaults.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/enum_shifted.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/enum_shifted_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/expand.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/expr_if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/apply.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/detail/is_empty.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/empty.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/expand.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/identity.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/intercept.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/is_1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/is_empty.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/is_empty_or_1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/is_empty_variadic.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/facilities/overload.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/for.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/identity.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/inc.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iterate.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/finish.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/forward1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/forward2.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/forward3.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/forward4.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/forward5.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/local.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/rlocal.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/self.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/detail/start.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/iterate.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/local.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/iteration/self.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/library.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/limits.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/adt.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/append.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/at.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/cat.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/detail/dmc/fold_left.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/detail/edg/fold_left.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/detail/edg/fold_right.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/detail/fold_left.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/detail/fold_right.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/enum.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/filter.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/first_n.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/fold_left.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/fold_right.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/for_each.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/for_each_i.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/for_each_product.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/rest_n.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/reverse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/to_array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/to_seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/to_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/list/transform.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/and.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/bitand.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/bitnor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/bitor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/bitxor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/bool.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/compl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/nor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/not.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/or.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/logical/xor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/max.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/min.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/comma.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/comma_if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/is_begin_parens.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/paren.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/paren_if.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/punctuation/remove_parens.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repeat.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repeat_2nd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repeat_3rd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repeat_from_to.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repeat_from_to_2nd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repeat_from_to_3rd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/deduce_r.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/deduce_z.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/detail/dmc/for.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/detail/edg/for.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/detail/for.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/detail/msvc/for.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_binary_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_shifted.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_shifted_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_trailing.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/enum_trailing_params.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/for.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/repeat.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/repetition/repeat_from_to.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/selection.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/selection/max.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/selection/min.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/cat.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/detail/binary_transform.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/detail/is_empty.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/detail/split.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/detail/to_list_msvc.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/elem.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/enum.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/filter.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/first_n.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/fold_left.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/fold_right.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/for_each.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/for_each_i.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/for_each_product.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/insert.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/pop_back.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/pop_front.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/push_back.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/push_front.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/remove.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/replace.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/rest_n.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/reverse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/subseq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/to_array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/to_list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/to_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/transform.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/counter.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/counter.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/def.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/shared.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/slot1.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/slot2.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/slot3.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/slot4.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/detail/slot5.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/slot/slot.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/stringize.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/detail/is_single_return.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/eat.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/elem.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/enum.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/insert.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/pop_back.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/pop_front.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/push_back.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/push_front.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/rem.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/remove.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/replace.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/reverse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/to_array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/to_list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/tuple/to_seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/detail/is_single_return.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/elem.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/to_array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/to_list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/to_seq.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/variadic/to_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/while.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/preprocessor/wstringize.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/sbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/sbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/sysdep.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/type.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/unpack_define.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/unpack_exception.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/adaptor_base.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/adaptor_base_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/array_ref.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/array_ref_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/bool.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/boost/fusion.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/boost/msgpack_variant.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/boost/optional.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/boost/string_ref.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/boost/string_view.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/carray.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/char_ptr.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/check_container_size.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/check_container_size_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/complex.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/array_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/array_unsigned_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/chrono.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/forward_list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/reference_wrapper.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/shared_ptr.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/timespec.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/unique_ptr.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp17/array_byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp17/byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp17/carray_byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp17/optional.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp17/string_view.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/cpp20/span.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/define.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/define_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/deque.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp03_define_array_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp03_define_map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_convert_helper.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_define_array_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_define_map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/ext.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/ext_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/fixint.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/fixint_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/float.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/int.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/int_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/list.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/msgpack_tuple.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/nil.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/nil_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/pair.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/raw.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/set.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/size_equal_only.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/size_equal_only_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/string.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/tr1/unordered_map.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/tr1/unordered_set.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/v4raw.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/v4raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/vector.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/vector_bool.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/vector_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/vector_unsigned_char.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/adaptor/wstring.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/cpp_config.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/cpp_config_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/detail/cpp03_zone.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/detail/cpp03_zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/detail/cpp11_zone.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/detail/cpp11_zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/fbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/fbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/iterator.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/iterator_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/meta.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/meta_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/object.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/object_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/object_fwd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/object_fwd_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/pack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/pack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/parse_return.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/sbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/sbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/unpack_exception.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/version.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/versioning.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/vrefbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/vrefbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/zbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/zbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/zone.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v1/zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/adaptor_base.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/adaptor_base_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/array_ref_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/check_container_size_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/define_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/detail/cpp03_define_array_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/detail/cpp03_define_map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/detail/cpp03_msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/detail/cpp11_define_array_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/detail/cpp11_define_map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/detail/cpp11_msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/ext_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/fixint_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/int_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/nil_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/size_equal_only_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/adaptor/v4raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/cpp_config_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/create_object_visitor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/create_object_visitor_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/detail/cpp03_zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/detail/cpp11_zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/fbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/iterator_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/meta_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/null_visitor.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/null_visitor_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/object.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/object_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/object_fwd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/object_fwd_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/pack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/parse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/parse_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/parse_return.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/sbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/vrefbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/x3_parse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/x3_parse_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/x3_unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/x3_unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/zbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v2/zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/adaptor_base.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/adaptor_base_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/array_ref_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/boost/msgpack_variant_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/check_container_size_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/define_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/detail/cpp03_define_array_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/detail/cpp03_define_map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/detail/cpp03_msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/detail/cpp11_define_array_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/detail/cpp11_define_map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/detail/cpp11_msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/ext_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/fixint_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/int_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/map_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/msgpack_tuple_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/nil_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/size_equal_only_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/adaptor/v4raw_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/cpp_config_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/create_object_visitor_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/detail/cpp03_zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/detail/cpp11_zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/fbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/iterator_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/meta_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/null_visitor_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/object_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/object_fwd.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/object_fwd_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/pack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/parse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/parse_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/parse_return.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/sbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/vrefbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/x3_parse_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/x3_unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/x3_unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/zbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/v3/zone_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/version.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/version_master.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/versioning.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/vrefbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/vrefbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/x3_parse.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/x3_parse_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/x3_unpack.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/x3_unpack_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/zbuffer.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/zbuffer_decl.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/zone.hpp create mode 100644 cpp/src/msgpack-c/include/msgpack/zone_decl.hpp create mode 100755 cpp/src/msgpack-c/make_file_list.sh create mode 100755 cpp/src/msgpack-c/makedist.sh create mode 100644 cpp/src/msgpack-c/msgpack-cxx-config.cmake.in create mode 100755 cpp/src/msgpack-c/preprocess create mode 100644 cpp/src/msgpack-c/test-install/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/test-install/simple.cpp create mode 100644 cpp/src/msgpack-c/test/CMakeLists.txt create mode 100644 cpp/src/msgpack-c/test/array_ref.cpp create mode 100644 cpp/src/msgpack-c/test/boost_fusion.cpp create mode 100644 cpp/src/msgpack-c/test/boost_optional.cpp create mode 100644 cpp/src/msgpack-c/test/boost_string_ref.cpp create mode 100644 cpp/src/msgpack-c/test/boost_string_view.cpp create mode 100644 cpp/src/msgpack-c/test/boost_variant.cpp create mode 100644 cpp/src/msgpack-c/test/buffer.cpp create mode 100644 cpp/src/msgpack-c/test/buffer_c.cpp create mode 100644 cpp/src/msgpack-c/test/carray.cpp create mode 100644 cpp/src/msgpack-c/test/cases.cpp create mode 100644 cpp/src/msgpack-c/test/cases.mpac create mode 100644 cpp/src/msgpack-c/test/cases_compact.mpac create mode 100644 cpp/src/msgpack-c/test/convert.cpp create mode 100644 cpp/src/msgpack-c/test/fixint.cpp create mode 100644 cpp/src/msgpack-c/test/fuzz_unpack_pack_fuzzer_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/inc_adaptor_define.cpp create mode 100644 cpp/src/msgpack-c/test/iterator_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/json.cpp create mode 100644 cpp/src/msgpack-c/test/limit.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_basic.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_container.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_cpp17.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_cpp20.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_stream.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_tuple.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_vref.cpp create mode 100644 cpp/src/msgpack-c/test/msgpack_x3_parse.cpp create mode 100644 cpp/src/msgpack-c/test/multi_file1.cpp create mode 100644 cpp/src/msgpack-c/test/multi_file2.cpp create mode 100644 cpp/src/msgpack-c/test/object.cpp create mode 100644 cpp/src/msgpack-c/test/object_with_zone.cpp create mode 100644 cpp/src/msgpack-c/test/pack_unpack.cpp create mode 100644 cpp/src/msgpack-c/test/raw.cpp create mode 100644 cpp/src/msgpack-c/test/reference.cpp create mode 100644 cpp/src/msgpack-c/test/reference_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/reference_wrapper_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/shared_ptr_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/size_equal_only.cpp create mode 100644 cpp/src/msgpack-c/test/streaming.cpp create mode 100644 cpp/src/msgpack-c/test/test_allocator.hpp create mode 100644 cpp/src/msgpack-c/test/unique_ptr_cpp11.cpp create mode 100644 cpp/src/msgpack-c/test/user_class.cpp create mode 100644 cpp/src/msgpack-c/test/version.cpp create mode 100644 cpp/src/msgpack-c/test/visitor.cpp create mode 100644 cpp/src/msgpack-c/test/zone.cpp create mode 100755 cpp/src/msgpack-c/update_version.sh create mode 160000 foundation create mode 100644 package.json create mode 100644 sol/.gitignore create mode 100644 sol/Dockerfile create mode 100644 sol/README.md create mode 100755 sol/bootstrap.sh create mode 100644 sol/figures/verifier.png create mode 100644 sol/foundry.toml create mode 160000 sol/lib/forge-std create mode 160000 sol/lib/openzeppelin-contracts create mode 160000 sol/lib/solidity-stringutils create mode 100644 sol/remappings.txt create mode 100755 sol/scripts/init.sh create mode 100755 sol/scripts/install_foundry.sh create mode 100755 sol/scripts/run_fuzzer.sh create mode 100644 sol/src/interfaces/IVerifier.sol create mode 100644 sol/src/ultra/BaseUltraVerifier.sol create mode 100644 sol/src/ultra/instance/Add2UltraVerifier.sol create mode 100644 sol/src/ultra/instance/BlakeUltraVerifier.sol create mode 100644 sol/src/ultra/instance/RecursiveUltraVerifier.sol create mode 100644 sol/src/ultra/keys/Add2UltraVerificationKey.sol create mode 100644 sol/src/ultra/keys/BlakeUltraVerificationKey.sol create mode 100644 sol/src/ultra/keys/RecursiveUltraVerificationKey.sol create mode 100644 sol/test/base/DifferentialFuzzer.sol create mode 100644 sol/test/base/TestBase.sol create mode 100644 sol/test/ultra/Add2.t.sol create mode 100644 sol/test/ultra/Blake.t.sol create mode 100644 sol/test/ultra/Recursive.t.sol create mode 100644 sol/test/ultra/TestBaseUltra.sol delete mode 100644 ts/.gitignore delete mode 100755 ts/.pnp.cjs delete mode 100644 ts/.pnp.loader.mjs delete mode 100644 ts/.yalc/@aztec/eslint-config/index.js delete mode 100644 ts/.yalc/@aztec/eslint-config/package.json delete mode 100644 ts/.yalc/@aztec/eslint-config/yalc.sig delete mode 100644 ts/.yalc/@aztec/log/.eslintrc.cjs delete mode 100644 ts/.yalc/@aztec/log/.tsbuildinfo delete mode 100644 ts/.yalc/@aztec/log/Dockerfile delete mode 100644 ts/.yalc/@aztec/log/README.md delete mode 100644 ts/.yalc/@aztec/log/package.json delete mode 100644 ts/.yalc/@aztec/log/src/index.ts delete mode 100644 ts/.yalc/@aztec/log/tsconfig.dest.json delete mode 100644 ts/.yalc/@aztec/log/tsconfig.json delete mode 100644 ts/.yalc/@aztec/log/yalc.sig delete mode 100644 ts/.yalc/@aztec/wasm-worker/.eslintrc.cjs delete mode 100644 ts/.yalc/@aztec/wasm-worker/.tsbuildinfo delete mode 100644 ts/.yalc/@aztec/wasm-worker/Dockerfile delete mode 100644 ts/.yalc/@aztec/wasm-worker/README.md delete mode 100644 ts/.yalc/@aztec/wasm-worker/package.json delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/memory_fifo.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/test/gcd.wasm delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/test/gcd.wat delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/browser/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/browser/message_port_socket.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/browser/shared_worker_connector.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/browser/shared_worker_listener.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/browser/worker_connector.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/browser/worker_listener.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/dispatch/create_dispatch_fn.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/dispatch/create_dispatch_proxy.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/dispatch/messages.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/interface/connector.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/interface/listener.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/interface/socket.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/interface/transferable.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/node/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/node/node_connector.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/node/node_connector_socket.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/node/node_listener.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/node/node_listener_socket.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/transport_client.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/transport/transport_server.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/wasm/async_call_state.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/wasm/empty_wasi_sdk.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/wasm/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/wasm/wasm_module.test.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/wasm/wasm_module.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/browser/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/browser/start_web_module.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/browser/web_data_store.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/browser/web_worker.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/data_store.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/node/index.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/node/node_data_store.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/node/node_worker.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/node/start_node_module.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/wasm_worker.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/src/worker/worker_pool.ts delete mode 100644 ts/.yalc/@aztec/wasm-worker/tsconfig.dest.json delete mode 100644 ts/.yalc/@aztec/wasm-worker/tsconfig.json delete mode 100644 ts/.yalc/@aztec/wasm-worker/yalc.sig delete mode 100644 ts/.yarnrc.yml create mode 100644 ts/src/crs/index.ts delete mode 100644 ts/src/crypto/index.ts delete mode 100644 ts/src/crypto/pedersen/index.ts delete mode 100644 ts/src/crypto/pedersen/pedersen.test.ts delete mode 100644 ts/src/crypto/pedersen/pedersen.ts create mode 100644 ts/src/index.ts delete mode 120000 ts/src/wasm/barretenberg.wasm delete mode 100644 ts/src/wasm/barretenberg_wasm.test.ts delete mode 100644 ts/src/wasm/index.ts delete mode 100644 ts/src/wasm/serialize.ts delete mode 100644 ts/yalc.lock create mode 100644 wasi-sdk.nix rename ts/yarn.lock => yarn.lock (79%) diff --git a/.circleci/bin/jq b/.circleci/bin/jq deleted file mode 100755 index 93a5da26c43025fb3565985f06906714fafc5ad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30872 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 -# example: ./build barretenberg-x86_64-linux-clang -# output image: -# 278380418400.dkr.ecr.us-east-2.amazonaws.com/barretenberg-x86_64-linux-clang:cache-deadbeefcafebabe1337c0d3 - -set -e - -REPOSITORY=$1 -DOCKERFILE=$(query_manifest dockerfile $REPOSITORY) -PROJECT_DIR=$(query_manifest projectDir $REPOSITORY) - -echo "Repository: $REPOSITORY" -echo "Working directory: $PWD" -echo "Dockerfile: $DOCKERFILE" - -cd $(query_manifest buildDir $REPOSITORY) - -function fetch_image() { - echo "Pulling: $1" - if ! docker pull $1 > /dev/null 2>&1; then - echo "Image not found: $1" - return 1 - fi - return 0 -} - -# Ensure ECR repository exists. -ensure_repo $REPOSITORY $ECR_REGION refresh_lifecycle - -LAST_SUCCESSFUL_COMMIT=$(last_successful_commit $REPOSITORY) -echo "Last successful commit: $LAST_SUCCESSFUL_COMMIT" - -# If we have previously successful commit, we can early out if nothing relevant has changed since. -if ! check_rebuild "$LAST_SUCCESSFUL_COMMIT" $REPOSITORY; then - echo "No rebuild necessary. Retagging..." - STAGES=$(cat $DOCKERFILE | sed -n -e 's/^FROM .* AS \(.*\)/\1/p') - for STAGE in $STAGES; do - tag_remote_image $REPOSITORY cache-$LAST_SUCCESSFUL_COMMIT-$STAGE cache-$COMMIT_HASH-$STAGE || true - done - tag_remote_image $REPOSITORY cache-$LAST_SUCCESSFUL_COMMIT cache-$COMMIT_HASH - untag_remote_image $REPOSITORY tainted - exit 0 -fi - -# Validate any terraform if it exists. -if [ -d $ROOT_PATH/$PROJECT_DIR/terraform ]; then - ensure_terraform - export TF_IN_AUTOMATION=1 - pushd $ROOT_PATH/$PROJECT_DIR/terraform - for DIR in . $(find . -maxdepth 1 -type d); do - pushd $DIR - if [ -f ./main.tf ]; then - terraform init -input=false -backend-config="key=dummy" - terraform validate - fi - popd - done - popd -fi - -# Pull latest parents that are not ours. -echo "$DOCKERHUB_PASSWORD" | docker login -u aztecprotocolci --password-stdin -PARENTS=$(cat $DOCKERFILE | sed -n -e 's/^FROM \([^[:space:]]\+\).*/\1/p' | grep -v $ECR_DEPLOY_URL | sort | uniq) -for PARENT in $PARENTS; do - fetch_image $PARENT -done - -# For each parent that's ours, pull in the latest image. -PARENTS=$(cat $DOCKERFILE | sed -n -e "s/^FROM $ECR_DEPLOY_URL\/\([^[:space:]]\+\).*/\1/p") -for PARENT in $PARENTS; do - # Extract repository name (i.e. discard tag). - PARENT_REPO=${PARENT%:*} - PARENT_COMMIT_HASH=$(last_successful_commit $PARENT_REPO) - # There must be a parent image to continue. - if [ -z "$PARENT_COMMIT_HASH" ]; then - echo "No parent image found for $PARENT_REPO" - exit 1 - fi - PARENT_IMAGE_URI=$ECR_URL/$PARENT_REPO:cache-$PARENT_COMMIT_HASH - echo "Pulling dependency $PARENT_REPO..." - fetch_image $PARENT_IMAGE_URI - # Tag it to look like an official release as that's what we use in Dockerfiles. - docker tag $PARENT_IMAGE_URI $ECR_DEPLOY_URL/$PARENT -done - -# Pull, build and push each named stage to cache. -STAGES=$(cat $DOCKERFILE | sed -n -e 's/^FROM .* AS \(.*\)/\1/p') -for STAGE in $STAGES; do - # Get the last build of this stage to leverage layer caching. - if [ -n "$LAST_SUCCESSFUL_COMMIT" ]; then - echo "Pulling stage: $STAGE" - STAGE_IMAGE_LAST_URI=$ECR_URL/$REPOSITORY:cache-$LAST_SUCCESSFUL_COMMIT-$STAGE - if fetch_image $STAGE_IMAGE_LAST_URI; then - STAGE_CACHE_FROM="--cache-from $STAGE_IMAGE_LAST_URI" - fi - fi - - echo "Building stage: $STAGE" - STAGE_IMAGE_COMMIT_URI=$ECR_URL/$REPOSITORY:cache-$COMMIT_HASH-$STAGE - docker build --target $STAGE $STAGE_CACHE_FROM -t $STAGE_IMAGE_COMMIT_URI -f $DOCKERFILE . - - # We don't want to have redo this stages work when building the final image. Use it as a layer cache. - CACHE_FROM="--cache-from $STAGE_IMAGE_COMMIT_URI $CACHE_FROM" - - echo "Pushing stage: $STAGE" - docker push $STAGE_IMAGE_COMMIT_URI > /dev/null 2>&1 - echo -done - -# Pull previous image to use it as a layer cache if it exists. -if [ -n "$LAST_SUCCESSFUL_COMMIT" ]; then - LAST_SUCCESSFUL_URI=$ECR_URL/$REPOSITORY:cache-$LAST_SUCCESSFUL_COMMIT - echo "Pulling previous build of $REPOSITORY..." - fetch_image $LAST_SUCCESSFUL_URI || true - CACHE_FROM="--cache-from $LAST_SUCCESSFUL_URI $CACHE_FROM" - echo -fi - -# Build the actual image and give it a commit tag. -IMAGE_COMMIT_URI=$ECR_URL/$REPOSITORY:cache-$COMMIT_HASH -echo "Building image: $IMAGE_COMMIT_URI" -docker build -t $IMAGE_COMMIT_URI -f $DOCKERFILE $CACHE_FROM --build-arg COMMIT_TAG=$COMMIT_TAG . -echo "Pushing image: $IMAGE_COMMIT_URI" -docker push $IMAGE_COMMIT_URI > /dev/null 2>&1 -untag_remote_image $REPOSITORY tainted \ No newline at end of file diff --git a/.circleci/build_local b/.circleci/build_local deleted file mode 100755 index 84e7224123..0000000000 --- a/.circleci/build_local +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# Builds the PROJECTS in the given order. -# Will terminate build at TARGET_PROJECT (if given). -# Will only build TARGET_PROJECT if ONLY_TARGET given. -# Will push TARGET_PROJECT to ECR with PUSH_LABEL (if given). -# PROJECT elements have structure WORKING_DIR:PROJECT:DOCKERFILE:REPO. -# If DOCKERFILE is excluded it tries to default to ./Dockerfile then ./REPO/Dockerfile - -set -e - -TARGET_PROJECT=$1 -ONLY_TARGET=$2 -PUSH_LABEL=$3 - -PROJECTS=( - cpp:barretenberg-cpp:./dockerfiles/Dockerfile.x86_64-linux-clang:barretenberg-x86_64-linux-clang - cpp:barretenberg-cpp:./dockerfiles/Dockerfile.wasm-linux-clang:barretenberg-wasm-linux-clang - # js:barretenberg-js -) - -for E in ${PROJECTS[@]}; do - ARR=(${E//:/ }) - WORKING_DIR=${ARR[0]} - PROJECT=${ARR[1]} - DOCKERFILE=${ARR[2]} - REPO=${ARR[3]:-$PROJECT} - - if [ -n "$ONLY_TARGET" -a ! "$PROJECT" = "$TARGET_PROJECT" ]; then - continue - fi - - pushd $WORKING_DIR - - if [ ! -f "$DOCKERFILE" ]; then - DOCKERFILE=./Dockerfile - if [ ! -f "$DOCKERFILE" ]; then - DOCKERFILE=./$REPO/Dockerfile - if [ ! -f "$DOCKERFILE" ]; then - echo "Dockerfile not found." - exit 1 - fi - fi - fi - - echo - echo - echo - echo "*** Building $PROJECT:$DOCKERFILE -> $REPO ***" - echo - - time docker build -f $DOCKERFILE -t $ECR_URL/$REPO:latest . - - if [ -n "$TERM_AT_TARGET" -a "$PROJECT" = "$TARGET_PROJECT" ]; then - break - fi - - popd -done diff --git a/.circleci/changed b/.circleci/changed deleted file mode 100755 index 341557dbf8..0000000000 --- a/.circleci/changed +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -LAST_SUCCESSFUL_COMMIT=$1 - -[ -n "$COMMIT_HASH" ] || exit 1 - -if git diff --name-only $LAST_SUCCESSFUL_COMMIT $COMMIT_HASH | grep -q $2; then - exit 0 -else - exit 1 -fi \ No newline at end of file diff --git a/.circleci/check_rebuild b/.circleci/check_rebuild deleted file mode 100755 index d7d7f2c2dd..0000000000 --- a/.circleci/check_rebuild +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# Succeeds if any files matching the rebuild patterns, have changed since the base commit. -set -e - -BASE_COMMIT=$1 -REPOSITORY=$2 - -# If given nothing, then return true to rebuild. -[ -n "$BASE_COMMIT" ] || exit 0 - -# If a tainted tag exists, remove it and return true to rebuild. -if image_exists $REPOSITORY tainted; then - echo "$REPOSITORY has been tainted. Will rebuild." - exit 0 -fi - -# Compute .rebuild_patterns from the build manifest. -query_manifest rebuildPatterns $REPOSITORY > .rebuild_patterns - -echo "Rebuild patterns:" -cat .rebuild_patterns - -git config diff.renameLimit 999999 - -if git diff --name-only ${BASE_COMMIT} ${COMMIT_HASH} | grep -q -f .rebuild_patterns; then - exit 0 -else - exit 1 -fi \ No newline at end of file diff --git a/.circleci/cond_spot_run_build b/.circleci/cond_spot_run_build deleted file mode 100755 index d4fa4723ea..0000000000 --- a/.circleci/cond_spot_run_build +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -e - -REPOSITORY=$1 -shift -SPEC=$1 -shift -DOCKERFILE=$(query_manifest dockerfile $REPOSITORY) - -cd $(query_manifest buildDir $REPOSITORY) - -LAST_SUCCESSFUL_COMMIT=$(last_successful_commit $REPOSITORY) -echo "Last successful commit: $LAST_SUCCESSFUL_COMMIT" - -if check_rebuild "$LAST_SUCCESSFUL_COMMIT" $REPOSITORY; then - spot_run_script $SPEC ../.circleci/remote_build/remote_build $REPOSITORY $@ -else - echo "No rebuild necessary. Retagging..." - STAGES=$(cat $DOCKERFILE | sed -n -e 's/^FROM .* AS \(.*\)/\1/p') - for STAGE in $STAGES; do - tag_remote_image $REPOSITORY cache-$LAST_SUCCESSFUL_COMMIT-$STAGE cache-$COMMIT_HASH-$STAGE || true - done - tag_remote_image $REPOSITORY cache-$LAST_SUCCESSFUL_COMMIT cache-$COMMIT_HASH -fi \ No newline at end of file diff --git a/.circleci/cond_spot_run_script b/.circleci/cond_spot_run_script deleted file mode 100755 index 0882bae7e0..0000000000 --- a/.circleci/cond_spot_run_script +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# Conditionally runs a script on a remote spot instance if any dependent code has changed between -# the last successful run and the present commit. -# -# It's expected to be run from the project directory, and that there be a directory called `scripts` -# containing the given named script to execute on the remote machine. -# -# This script is only useful if there is nothing to do in the event there is no rebuild. This is fine -# for running a suite of tests for example, but is not useful for performing a build, as even if a -# build has nothing to do, the previous images are retagged with the new commit hash for upstream jobs. -# -# Arguments are: -# 1. REPOSITORY: The project repository name in ECR. Used to determine if there are changes since last success. -# 2. SUCCESS_TAG: To track if this job needs to be run, the repository image is tagged with a success tag after a -# successful run. The script will only run if there were relevant code changes since the last successful commit. -# 3... ARGS: Arguments to pass to spot_run_script. -set -e - -REPOSITORY=$1 -shift -SUCCESS_TAG=$1 -shift - -LAST_SUCCESSFUL_COMMIT=$(last_successful_commit $REPOSITORY $SUCCESS_TAG) - -echo "Last successful commit for $SUCCESS_TAG: $LAST_SUCCESSFUL_COMMIT" - -if check_rebuild "$LAST_SUCCESSFUL_COMMIT" $REPOSITORY; then - spot_run_script $@ - tag_remote_image $REPOSITORY cache-$COMMIT_HASH cache-$COMMIT_HASH-$SUCCESS_TAG -fi \ No newline at end of file diff --git a/.circleci/cond_spot_run_tests b/.circleci/cond_spot_run_test_script similarity index 51% rename from .circleci/cond_spot_run_tests rename to .circleci/cond_spot_run_test_script index f214624885..044777b673 100755 --- a/.circleci/cond_spot_run_tests +++ b/.circleci/cond_spot_run_test_script @@ -1,12 +1,13 @@ #!/bin/bash set -e -set -o pipefail - REPOSITORY=$1 +SCRIPT_PATH=$2 +shift shift cd $(query_manifest projectDir $REPOSITORY) mkdir -p /tmp/test-logs -cond_spot_run_script $REPOSITORY $JOB_NAME 32 ./scripts/run_tests $@ | tee "/tmp/test-logs/$JOB_NAME.log" +set -o pipefail +cond_spot_run_script $REPOSITORY $JOB_NAME 32 $SCRIPT_PATH $@ | tee "/tmp/test-logs/$JOB_NAME.log" diff --git a/.circleci/config.yml b/.circleci/config.yml index c4618ddcca..2c35833f59 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,11 +1,3 @@ -# This config consists of currently 3 workflows. -# - system: The main Aztec infrastructure, services, frontends etc. -# - metrics: The metrics grafana and prometheus instances, and some prometheus data sources. -# - website: The company website. -# -# The default workflow is system. To trigger the other workflows, trigger a workflow from CCI -# setting a string variable called `workflow` to another name. -# # This file uses YAML anchors and aliases to prevent repetition of blocks of config: # https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/ # @@ -24,6 +16,14 @@ version: 2.1 +orbs: + slack: circleci/slack@4.12.1 + +parameters: + workflow: + type: string + default: "system" + # This build step checks out the code from the repository. It has a hardcoded readonly key to allow the checkout. # Initially it just fetches the repo metadata for the current commit hash to a depth of 50 commits. # We need historical commit hashes to calculate diffs between previous and current commits. @@ -42,13 +42,17 @@ checkout: &checkout chmod 0600 .ssh/id_rsa + # IF YOU'RE CHANGING THIS, YOU ALSO WANT TO CHANGE: build-system/remote_build/remote_build # Shallow checkout this commit. mkdir -p project cd project git init git remote add origin $CIRCLE_REPOSITORY_URL + # Only download metadata when fetching. git fetch --depth 50 --filter=blob:none origin $CIRCLE_SHA1 git checkout FETCH_HEAD + # Initialize submodules recursively + git submodule update --init --recursive # This build step checks out the code from the benchmark-archive repository. The key is saved in CircleCi environment in base64 format. # Initially it just fetches the latest version. @@ -82,7 +86,15 @@ benchmark_add_keys: &benchmark_add_keys setup_env: &setup_env run: name: "Setup environment" - command: cd .circleci && ./setup_env "$CIRCLE_SHA1" "$CIRCLE_TAG" "$CIRCLE_JOB" "$CIRCLE_REPOSITORY_URL" "$CIRCLE_BRANCH" + command: ./build-system/scripts/setup_env "$CIRCLE_SHA1" "$CIRCLE_TAG" "$CIRCLE_JOB" "$CIRCLE_REPOSITORY_URL" "$CIRCLE_BRANCH" + +setup_aztec_commit: &setup_aztec_commit + run: + name: "Setup environment for Aztec Integration Testing" + command: | + # Load the aztec commit into env for use in integration tests + echo "export AZTEC_COMMIT=$(cat cpp/.aztec-packages-commit 2>/dev/null || echo master)" >> "$BASH_ENV" + source "$BASH_ENV" # This step is used to save logs from various barretenberg test to the workspace so that they can be used later to parse benchmark values out of them save_logs: &save_logs @@ -136,7 +148,7 @@ jobs: name: "Build" command: cond_spot_run_build barretenberg-x86_64-linux-clang-assert 64 - barretenberg-tests: + stdlib-tests: docker: - image: aztecprotocol/alpine-build-image resource_class: small @@ -145,10 +157,10 @@ jobs: - *setup_env - run: name: "Test" - command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 bb-tests + command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 stdlib-tests - *save_logs - honk-tests: + barretenberg-tests: docker: - image: aztecprotocol/alpine-build-image resource_class: small @@ -157,11 +169,10 @@ jobs: - *setup_env - run: name: "Test" - command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 honk_tests + command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 bb-tests - *save_logs - - stdlib-primitives-tests: + honk-tests: docker: - image: aztecprotocol/alpine-build-image resource_class: small @@ -170,10 +181,10 @@ jobs: - *setup_env - run: name: "Test" - command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 stdlib_primitives_tests --gtest_filter=-stdlib_biggroup* + command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 honk_tests - *save_logs - stdlib-biggroup-tests: + proof-system-tests: docker: - image: aztecprotocol/alpine-build-image resource_class: small @@ -182,7 +193,7 @@ jobs: - *setup_env - run: name: "Test" - command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 stdlib_primitives_tests --gtest_filter=stdlib_biggroup* + command: cond_spot_run_tests barretenberg-x86_64-linux-clang-assert 1 proof_system_tests - *save_logs stdlib-recursion-turbo-tests: @@ -235,30 +246,100 @@ jobs: name: "Test" command: store_test_benchmark_logs barretenberg-x86_64-linux-clang-assert + ################################### + # Aztec integration tests + circuits-wasm-linux-clang-builder-runner: + docker: + - image: aztecprotocol/alpine-build-image + resource_class: small + steps: + - *checkout + - *setup_env + - run: + name: "Build" + command: cond_spot_run_build barretenberg-circuits-wasm-linux-clang-builder-runner 64 + + circuits-x86_64-linux-clang-builder-runner: + docker: + - image: aztecprotocol/alpine-build-image + resource_class: small + steps: + - *checkout + - *setup_env + - run: + name: "Build" + command: cond_spot_run_build barretenberg-circuits-x86_64-linux-clang-builder-runner 64 + + circuits-wasm-tests: + docker: + - image: aztecprotocol/alpine-build-image + resource_class: small + steps: + - *checkout + - *setup_env + - *setup_aztec_commit + - run: + name: "Build" + command: cond_spot_run_test_script ./scripts/run_aztec_circuits_tests barretenberg-circuits-wasm-linux-clang-builder-runner "$AZTEC_COMMIT" 1 wasm scripts/a3-tests -*.skip*:*.circuit* + + circuits-x86_64-tests: + docker: + - image: aztecprotocol/alpine-build-image + resource_class: small + steps: + - *checkout + - *setup_env + - *setup_aztec_commit + - run: + name: "Build" + command: cond_spot_run_test_script ./scripts/run_aztec_circuits_tests barretenberg-circuits-x86_64-linux-clang-builder-runner "$AZTEC_COMMIT" 1 x86_64 scripts/a3-tests -*.skip* + # End Aztec integration tests + ################################### + # Repeatable config for defining the workflow below. +tag_regex: &tag_regex /v[0-9]+(\.[0-9]+)*(-[a-zA-Z-]+\.[0-9]+)?/ +defaults: &defaults + filters: + tags: + only: *tag_regex + context: + - slack + post-steps: + - slack/notify: + channel: $SLACK_BARRETENBERG_CHANNEL + event: fail + branch_pattern: "master" + bb_test: &bb_test requires: - x86_64-linux-clang-assert + <<: *defaults + +notmaster: ¬master + filters: + branches: + ignore: + - master + <<: *defaults workflows: system: jobs: - - x86_64-linux-gcc - - x86_64-linux-clang - - x86_64-linux-clang-assert - - wasm-linux-clang + - x86_64-linux-gcc: *defaults + - x86_64-linux-clang: *defaults + - x86_64-linux-clang-assert: *defaults + - wasm-linux-clang: *defaults + - proof-system-tests: *bb_test - honk-tests: *bb_test - barretenberg-tests: *bb_test - - stdlib-primitives-tests: *bb_test - - stdlib-biggroup-tests: *bb_test + - stdlib-tests: *bb_test - stdlib-recursion-turbo-tests: *bb_test - stdlib-recursion-ultra-tests: *bb_test - join-split-tests: *bb_test - benchmark-aggregator: requires: - barretenberg-tests - - stdlib-primitives-tests - - stdlib-biggroup-tests + - stdlib-tests - stdlib-recursion-turbo-tests - stdlib-recursion-ultra-tests - join-split-tests @@ -266,3 +347,14 @@ workflows: branches: only: - master + <<: *defaults + - circuits-wasm-linux-clang-builder-runner: *notmaster + - circuits-x86_64-linux-clang-builder-runner: *notmaster + - circuits-wasm-tests: + requires: + - circuits-wasm-linux-clang-builder-runner + <<: *notmaster + - circuits-x86_64-tests: + requires: + - circuits-x86_64-linux-clang-builder-runner + <<: *notmaster diff --git a/.circleci/ensure_repo b/.circleci/ensure_repo deleted file mode 100755 index c1d579d1f0..0000000000 --- a/.circleci/ensure_repo +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -set -e - -LIFECYCLE_POLICY='{ - "rules": [ - { - "rulePriority": 1, - "description": "No more than 200 cache images.", - "selection": { - "tagStatus": "tagged", - "tagPrefixList": ["cache-"], - "countType": "imageCountMoreThan", - "countNumber": 200 - }, - "action": { - "type": "expire" - } - } - ] -} -' - -REPOSITORY=$1 -REGION=$2 -REFRESH_LIFECYCLE=$3 - -aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT.dkr.ecr.$REGION.amazonaws.com 2> /dev/null - -# Create the repository if it doesn't exist. -if ! aws ecr describe-repositories --region $REGION --repository-names $REPOSITORY > /dev/null 2>&1; then - echo "Creating repo: $REPOSITORY" - aws ecr create-repository --region $REGION --repository-name $REPOSITORY > /dev/null 2>&1 - aws ecr put-lifecycle-policy --region $REGION --repository-name $REPOSITORY --lifecycle-policy-text "$LIFECYCLE_POLICY" > /dev/null 2>&1 -elif [ -n "$REFRESH_LIFECYCLE" ]; then - echo "Refreshing lifecycle rules for repo: $REPOSITORY" - aws ecr put-lifecycle-policy --region $REGION --repository-name $REPOSITORY --lifecycle-policy-text "$LIFECYCLE_POLICY" > /dev/null 2>&1 -fi -echo \ No newline at end of file diff --git a/.circleci/ensure_terraform b/.circleci/ensure_terraform deleted file mode 100755 index 982e28b565..0000000000 --- a/.circleci/ensure_terraform +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e - -[ ! -f /usr/local/bin/terraform ] || exit 0 - -cd $HOME -TERRAFORM_VERSION=0.13.3 -curl -sSL https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip -o terraform.zip -sudo apt install -y unzip -unzip terraform.zip -sudo mv terraform /usr/local/bin/ -rm terraform.zip \ No newline at end of file diff --git a/.circleci/erase_image_tags b/.circleci/erase_image_tags deleted file mode 100755 index 7183e3099b..0000000000 --- a/.circleci/erase_image_tags +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# Erase the image tag associated with the last commit for the given repository. -# If TILL_COMMIT_HASH is given, erase tags going back in time until we reach TILL_COMMIT_HASH. - -REPOSITORY=$1 -TILL_COMMIT_HASH=$2 - -if [ -n "$3" ]; then - TAG_POSTFIX=-$3 -fi - -for COMMIT_HASH in $(git log -n 50 --pretty=format:"%H"); do - TAG=cache-${COMMIT_HASH}$TAG_POSTFIX - if image_exists $REPOSITORY $TAG; then - echo "Erasing image tag: $REPOSITORY:$TAG" - aws ecr batch-delete-image --region=$ECR_REGION --repository-name $1 --image-ids imageTag=$TAG > /dev/null - if [ -z "$TILL_COMMIT_HASH" -o "$COMMIT_HASH" = "$TILL_COMMIT_HASH" ]; then - break - fi - fi -done \ No newline at end of file diff --git a/.circleci/image_exists b/.circleci/image_exists deleted file mode 100755 index e926b22537..0000000000 --- a/.circleci/image_exists +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -aws ecr describe-images --region=$ECR_REGION --repository-name=$1 --image-ids=imageTag=$2 > /dev/null 2>&1 \ No newline at end of file diff --git a/.circleci/last_successful_commit b/.circleci/last_successful_commit deleted file mode 100755 index 03b0fe625a..0000000000 --- a/.circleci/last_successful_commit +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -REPOSITORY=$1 - -if [ -n "$2" ]; then - TAG_POSTFIX=-$2 -fi - -# We are assuming that there has been a successful build of the given repo -# within the last 50 commits. If not return nothing. -for COMMIT_HASH in $(git log -n 50 --pretty=format:"%H"); do - >&2 echo "Checking if image exists for commit $COMMIT_HASH..." - if image_exists $REPOSITORY cache-${COMMIT_HASH}$TAG_POSTFIX; then - >&2 echo "Found." - echo $COMMIT_HASH - exit 0 - fi -done \ No newline at end of file diff --git a/.circleci/lib/libjq.so.1 b/.circleci/lib/libjq.so.1 deleted file mode 100644 index d3b71eabcaeeba5d67298932d68d4fbe548f2867..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309504 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

VW?ie9u}KwsRBF+=<}Cd9%p z`5dM-Dc)b;PW^wW^8SRXh{5hFSt?}RpNF}bYFVBmL{QKI%Vu{N3WM8HyubTx73n{t zbo%?Ev!1ziFa`qK4YcyapXs0Fq87w}|5i-BBvN9^-5{obNby$1RKS^(+E-&LXq*-AouMk*9n`GQ^uE*}&Xv^? z+vu)UikwlyRsAAvA-g9oCO1;NdV8gi^c0rPV&YkK zUs9b)13{X2U)EKrcP1Uy^?0wr(c4MsZGA{K!}ns}>D(gUW47U{+77K^3$VmbEF3PY zig^Sc(yMZRh^rdE4vk<)(btpc+5*2tvXt)?7o!8JLySZs{z9TCZ^S^k6hOJ(o027j zi`eQuj+p|{G(4o#c75`KFf>c}WPA(`*@)ap@*YU3do^Y*SddJKL&dc_4joENOS}zJ zpz1ET^IrS0Y=COae{Sjw!@s3z75Z%+O(}~hUTE3^WP%rK^IhUOnSFGK>=ShkMTS1+ zPtqr8`aZ=SvYtd`h_yRuj_!#`K#!C4Nk&=5TMUK_vL2)C5buFI5fJEwQ&2rdS`=l~?wX1qM$icPOM7pyg@e$$9vIZ=4RUL!*G0nIV`fljEgC=h7 zkk7E%bq`qOstlu?fI|tbai~kEA0dgZ1((N&W2rYz862`$iL+8d#NYvoU6l*T1SMKQ zWuLpf8|6Ri+qy(Nk1CVgcdu$`9@cBHbW?}2{>cg9P%4IN#TcqoYVZ$5+iR(Tx&`+h zt&gB~5`(=v+%%6wOYao%@*-6fcZ*A9X39$7LQ~QDxl)X-+<%Pg;mzcBT~~pB1lyez zHqjlj{0e) h6^Rr4Jdd-gPTiD)_-wxDX_U)J+i&F9axE1)Bcj0s`_#tK^j%Bwpo-W{?@^inha9^E?FqIM8M*P};38l;dw@500dVQ4mSy=|ym zHi<7`N@C>$VIj-HP;99eR>e${pHIq6b3M8nFk07NBgsQ@?%J%dxT|Wr_Z!gcs=_=R z`gio*K(S2j`(yR$vWr_s@OnVy(|wj$h<_oF@@Wa>6I~9o+>}!UM0k#ukfh6yo8PH~ zT6|S)Slp26A6+%2*gTMJHQ06b;yw!ziJDr7^Vu&a{s6-1|aH;bP!XjG!L?WV4!g}G|&!~xfYxgI+iwVW=O zHMFjO7i<=~>zQf4MA0<`JofYNofJ_(9Y=sughcY}aNTs2IO7jNX-Cuxgq_IwnBNjGN9N0pH zGg2Kz3rRr67~&cy@_jnj(Mr3}LY=yGTM;#zRo;L61zBJ3o} zUU$eMYFr#LOYc3KZ9gh?aPlIj;0 zA>ys8<+a@rVwIiZBwPn+aYqFtKp0TUMI;a{b|@D)fkZw;kTHDyPnaX(`X?dLpMbu* z<(5wZp!JnoLWteHO1L|(-%Ts}-LAAo-#$D}lUt9RNv!;l8GI?7HxomXWEfA++hFDV z4gTq5nn^c`2b8LLGjvtrHe@h6{ymaLS?xGZWt<#;FWK&oq8!D@*IDjCqqST7`bA3T z7QcZ{QlsB$iAIrBCYDuHWmJk5zcV%J&<-Ty#|-kD1!3xg;LiQ zQdr#^?O$^osY8EPU0Gg@g7S-aP7cQQ^vE{|N%1#r){Hh2X`~ai5Cs7<8=u^7^7r3s z(K!P9Z#*G&J+69iiNY&9{75HOBX%AbGLQJ!ij_j!>GRC;{#kTqh} z_x!w$ydUG=@1P)vSC3cApS`ZJh82-Zy4tOtvwAr$Y;}@wVFMTVw)_$@2=9Gq2bl|XQ@S7FT_?uufo2s z(p^?UZIIFc<*yV0Mpp1!u*dwJ(D8UWIOHnO0C_>oh)sISv;liHDTKjYqafD&Y( zuLU8N`>E9b2YbJCTpV_D3O2Yaf5rr{DrOo=smuZzqGAc588i{m;vHGRFt7Mt9LHW_ zf5t;|xI-dDA|1=3obe%6>^O#E(a}})B*{RdKwt`%BiOI03l}dUICM44&+|8mFHO$P z)clmT8ltJNVx_TDydcGemDM^*Pk~SNX%0(gKu%a77yV$ly+4Qk(BxZxGHq@0e(dK` zfO3JHOr=3NO?>4~w|q49GGr1wfU1I+Sa7A#+I%~J6l{AY(7pjoOpsP3_dO(@l2@;T zzitdJ;%P{rRctiI1=4{VD>TY80}Z~Cn5}v?j*la$}fnCXvOw4+nZRq3?uQq zG2PW>sTBCVI8*6^F4`uImFn)LdDdQ@)P#c}VB8DC$^^O9KqkkN@o{1mcq-v%2z8qQ z@X=L$Cf$*CJflW_i!|YyXc=@dRgx4n_?i~jj<}JPAbDB-MAT-wG>tArnB`(dUgN^q1Fv#*=jo>-EZP4tF_P4piFx~t_2;c8a=%o`)Fad$?YAn zI9lBL6-{kNbO=#QWj|n;eHj;ucaRGywa`xYWRau@C6bHE{rhxA9;QI!Daai$iz=tu zyQKXhlt}uXl9iIxHY8+QYmACB8ews?yLz?fB1&eOKg;zJ%HLXSa?wCfU1GatITyRQFZ&p?0Oz^)jt#r`#zjSs>fJ0I-(AuAJy4e>6Kb0&0S zbSgZFfJa0yl1}_N4I5}O{Q?@z4HS*G?I_u3o*Q{6&!y1S^;ia_{G`fa?C9{V3%bT} zz*T)d_T=FN$q&4B!Sj9j{8SHQ^E_;`k`H}Pq@9wbzrN;rdSS)4Ruz`{+i=D{{oxdf zbinEDkS%|A3Rh1vPkZjQPkGH#uIjb85?QzAD>za&uon&JG`<14Q8HsPiQ}vJIF_9q z?Nn;d^L|u|+cs2$dR#qL34itlzwq5pt78(La*o;oIrqUdbEP;6sGR;p z(w%MBq)@rV11?wfKD3rI-y}KkVt6Qp659awt+>zRjz7gjt@=GNF|Mj=bSk!%#tW1) z#2^WegM5rY+m|C0RCA+fR$qlZM-^FL3&M`hT1CZyN~o(kOx{JM$)HqB-b9F-_n?_}IPWy~z}wfZp;90%~`OXYA97=xmATZON_$tCMMGZ3DO} z;!9ms&!WNSb%N_iz5m$k{;qj75)2CFMJSH(;Gmw{c#2hpUEdut?y`&bvrR@3|49tR zm!0Gkavh>A^A^z;-6$jEy--?wMWQIEmJ&TMt(3dRiQXl3VF}fZNp%?=l3asZ5}W=E z9g>B;zwM%Fu-cdYL5f=ghj9(@&$@FmtI(>T!g)8xL5DRn6rI_d@%ucDP% z>vc4ax#n~~q2hPkGu#4ynp!$mHidL`IXLB03Ag_d>hFGhe>v|^LPcRIR~8b2z^L-JhJBaou5 zIqp#Ey49b$s#8F7rhEi`&iv?bRjZ=KQ;`I29!xVZt_Hu#(x9pVVsrBoC^G4qjWkU{ znYkBrN5*%ZI0g-hG808p{Z(jZ+Z&N4d06gna7q8LJ&wmB_KIgwN>EhB52U*S$uxRV zy&%^jVJg~)q7yEy-it9N6oydiW^GbA{wxv)b&{qsh$AtBsr0N4mRN;dGo^#NUtN#> zUsCEX5x3EnpW;+=_8D@{4tLgpD;}4U#wX;S8~KPeL}W-3jEYPefOVCt>Nj)+$H;rI zP2evd_sJ9`D=3-kdYp!oqPaz~Bh43%UhAJTaZ~h0h~)hDTi>U2JHvUN&948lyrX~1 z&TKuTGUha&kQETyh@ZyXB?>mNI=Jc@M%Bo)Hq z){EtMxV>+qGV>)QE!xpv>07YL#MV)}xht21Bto4nQeE{qR`r~)&8ISd(tzgsuW-#N zvl6QImQVGz)xuaz<)2W}=SjQ0KdI~g2vpMgj6HATq#cfu#VvVAHWN0Kwu@w-aCv$? z+&mHMBNc9LkyzRsQ$zLqqt!}q`Wjg@ z(Hi1oOzWlDNDw)6Eft^op}OZ|l4yp5ZW<|?s5dLMOXXY>x16dQ6TORFkA8ucQhp_Q zwNh0cPRTF zCGw|ZD}T5W@X#Js&683ufn9Vk8OC@QR<>N(^ixN0CWTx6vsE$I;4H4Z8XuL1LLca{ zR6zqP4~3LPfS?lt-86yNr^YYuw_-$ZRFfqgunaA>p`!qizJ?`!eZ{Qr5!SZ|4UD15_dUv+cz7B0 z>IyUp)>qi*q9vAGay#EysQfuE360uCq#U9-Nk`ti`%7G|XwO;LpSl7%XiGzG-W@<% z4#)J=zsR2TlbnyqIqP)lin79pOVMHEZr)!Qg6kxX0eYP{9r%DnuIjtdJ-CV$`Ok*Q zt4J2gdet28h#PVCBh{C9EVw~3{Uv)ap0=QjO%P{0s!_eplN|TbwiBjT$nq4gd{n0( zCapD<#%apHI1Cm;Xs=tZH>hpfP?jb<n&N5`1#zx z=RxImMRzJ<{#!-fRU;u8+aL_u_i$XDjTjt+h9c9e?QEYn#}pXiw~L*{L?86ww}5UHDK8Xxz1YY1^r7s^F&_ zXK78COy;Qm^{pM?ZRlU;NnGaMLg08H;k5wCw#e{&ex6tQ8{FQ3hP~$nv-eeuOt$bD z+YYmLGR7sg_iWwX`y?*yJ@)VHot&-P+fMsF`MV6PC-8pY70N2#xV85DmQy;M^aiAZ zYRL1T=dgTi@BU*9^eI`iTF(^SHM*0lst!#hEDa0yj1+AL{MUrJs%8?;cfhdr^*o?i zQ`h6K8g(CY0XC-8I4XWc%bIsEdtvI!bzQuN8LoN$PzV3{4!9R?p5Np@&vDs^jTy3p z@0WBXnt%-?&derWlm?GABILjLcUDU7KilC=fIfJL4d zWaw^e#w!z$`wbXp>|7dw%@0|ZXtGaSl>M(?OwV(Bm#MoLzPwO!Q}qwNn>WPnb=Z*l z9QP>VL*gVILBy4etg&4Xp3&R43_snMj z2>6byx8A@ih(Q=M@6{dlU0| ztq;=m?S4NjLX6#`N+f+hrK}c9f@Y+tYBgRhZ6cS@T58>*Z1dfT8KA$9(`j`LpWc9# zrKz9tg*sw86+jNA+kYcV!fBEzw{pH#wC5^V_QxbxcCls|28T5wS;kf}U#c5<$R9xb zUYTXl_d{SGmy^Kx=}TCq|I__!%>3x4wp)CKy$$837$B_+^LUuuZ0!IYP7Lbz!dRa+iOTd zXOuXBy|UZ0lcHsN*1{x_iyTsx$c5$_QHGI=-MABnhz2?qinHFHzx;{zWc!n)0BV2v zY{kX8JQ0s!NOovE|1an2k}qq$=;c2VLlgU~X7_+KCC9tzj!vI7^uRtIn*R19`nsd% zY7qi`N}d0Sy%mtab}l4gwPCosf^{+(>`%Q#{`L}YVusW@H=v&D_dB&N;oLHz+lL;E zIkxgOG|`U`nSkUsN9Do*HDswML}}(F_bb0pCUx+f$>yCw=D{kueHd_KN7WUMV^@-? z=8ZJpQrBWA4wuAs)Tus;#Co(n?Qbm;E1i&Vg_uv*OD)3f{Z@;BJ^sr2^H2G*z0K(V zikA6O`7rf=SfDKCd`Xt!QT?AyI4ob9Fx|5Ar8f!)`*}8I{>slpc+^FnkQ2^haKgJN zalo>B&*2zu(%fApR)KP7$uz-*@6D5Ga;5mznZ^0jeM8&VhkcoL^gY1(dIix(>nZh( zH+v0vv-oufIf!ZhgK{*GPHvJ|xaTCyfVabs3n3TI^8n&&Tu!}R?f)Ur)FG#?MttR- z8*XS|w?I4(5vX3+7Qj~PUQwsCl)b}Y>?+$4>9O1Ht31zu#un5GRz;wiKWqK>u;(G; z*xbP9A)mWf&DLoW)(sX1)SId3$ec$ncee8=5t-^iH%RhgiM&ia^QC=)CsJt`tW>kN z>5oY|^COy%%7;hnVk*CQi6^P>9RZq;=F!6fD1_L;qwVMkKa&jz&tJ&i0uX8zhB6*W zbvDKOCGGrdfu)$8MN}RPb3NIJJ2jZt<9UGy+%B&E08LhT5I5@RzA@cD{vMxrbRZ^T zi1#-dz#jiG8Qkr<4gS-$c58>s43EDUIw9cTm^@?YRfD zE!cCIbj)@xzuQ?SLP@`Muw~1sMdqiT= zxV{qe&jU}BG``PB&jZ^1O=5Vy4_4dQ0iP^wW!>dI-Y(%&w5tk%o^FV1A%}3Q~ZrdmT_(q0m+eq%>h)^4*Wo$!^l!J_>d&8y;{wr2u zhz#h@^QjI=lLeB^Vf5DzmLD$VcXU ziXrD!`|JBz@~4Ps4=?a3-UvK}k|AVC_FP5}#^T{3elXTmJ(Ie(9L4sbGomn$9p^NO z@9af-{>%EjPfXv9D{zY|Oq|nz4flsY@=e%#WYD!Qn%yl&auSR&6YEQnk5WkcEqE?H z2?DMqQB;XwP#5)U7^f&>aPwvr{2wW|s%Wn6J0G&d%y(tc)#~@Z^&bzm(c>70`Tz1^ z{+DU~FKo|$%tqa~Pc;U%h#C;={e5soZrZFvrN;_b+^Z(?e(&!>rNcr54@}=kGXACG z{UJs)ymRPK@bM~Ed+;bJ2EVf*ic!8DfBnCq;i^_&t)LQ09SZF|(WCsOG40Z(!~ESY zW@E-m?cH5`4v*3A!ti_-H(_`2FwVlKE-`9AqXm^Hr7OHxK446W5IOMG`R=G1DEP-_ zhRct|iW6LNGPdkkBnYh6hfDFFw_&%xKR}6^lGytujWvSI_GLSJrbck6PNS8UCSqY zKVq-Q!E6;C!Uh>jF$}bfAjZc7;?_5jRsH0IRvO`i@qB5w)O-eM(&yb=W%RFCppFL5 zmk5!HL74I*aDG!(;?ITiVR1k`d>hk7*x94^EcJbct@si=ntMIo^nHeJu|D5|?=y@8 zn~E>DVHrkQL^UF?&0wE=%AHav*EMVvJ*JL>TNbv?|2Olq`Yr9*KYOg-{=x-@{W~zF z6Y(<<-ZeN1FmW|Tk;6@t@uT|kxB2vx9FnN5#2-Hd<`a$Q0r}K}?W20Oa=za_*{bvT zYCE3>I#=8Iw6566r+Qq?dDsKq==l^5TICbI32;EXhQ1*-(^OFPcqgGY%4#iDug2j& zCDgy|Uk^#KG9Im)1LJWQsnPpaI2_{K^)2|=h{xM}wH=T1oU844EG=^4QGu&D9^sC! zs(oUQAEW$kY*@W%hD}Fu}lt0+SZ5DxBT-hwK;6BcjPvo#l{Bqr`|A-uBY1i zJ@#G#`qM}lBFbNfNrN1dxXWBcMjX~<{;oe)w6xbBrWgA4-(l+Ci1{1!=VAD!H$Hpz zz$f?R&(N2@8GnIz11td@WhRYVhZ)B6UChHiM^~0#Ji?qG$G0@Ke&nCe{JZ{iH4PUs zRmGc|0`un_r5(#1uFp%x`19xf5B>3#Ejfm-w)1BPjY=~6?EHBMmveniz}1{TOE8~P z8dUzw2E7ppQTcP^2K+X}x;M~bk2^fHf5kVdAAtgvF_Cm(+=`?fH2RK9tdmAZ8jp*m zRN0@N!&;1rwmn{*?0CfSm|ftHMZ`(#hp_^oou?tdeltL=KU zH_z#R4Y->7Uw_9NRgZduR{igzR}k!u&S`)D3zarYt@|*x{9XV1XaAkSNu10cIR2At zeLU|E2kh~D=liDr-x&ToS3CZX_WO^kZT~S<)$31h&|H6BCI6k%n*Y*f;V7afaCvrrvK{=|DCHH|8xER<7(S~OmzeN2d(@c{v!GBoYwr8HY@)z zQvIF(*k6?MTlq~S{=O@H8#tEsjxuPUF^~2c@#9bUX(}<(8TUjtc4vURIk8VXDo^di z?!2fZopn9Vf;-A^1WDg_Tk~Ju=Yi($#geZBt zy2|UM$WV3NYw|i`_T7!WADBkhZN*egNke~1!q2sSB>@^kR0mrO8Ue<@t-@S26=8nS zVe*IhIXU!6jrHs}X@q(7zr3+SNZy)8Eb1Uk9zC z=6UEZHT9PqvHpgy+Vy{w=D*qsOR`-RT}i+DS@ItF;LhuY*<* zMfyuk{UyQm|Ks>`u`|Aj=hhhcuf+Pt-`Sa3{$sIc=ZDP1k$kn2{}?!o{Kw^X{^M#p z|1lK|$bZl(|No%Ie#kkk<-Z)0RQ{8ezsdi9_Fu|U{eQLLzvBU&M#Y_-q4`gHVtijj z`OjB7{$t=U{Kw_C|G3)rA5*~q|3ORt=@GdoeC-d5##K1(af&>?WuYi_uJDJXNDfod zkZe-iZb$j?!0Zin_sqeU3GvyxH$GuH zEm!s5u@fgWh+ws_l@gguD<8Zm1|G3)Df6V&ycuWT!7?0zgLp<&WY{uhmIX238 z6p^-n5sx7GK5b=t`MzX?Ki}`i&Zh0JjMhO+&_wwZn6?E+0V(|hhKj>e`tQcW=yvrd zYx@7f$}2$seWX8rGW2Je`bQnH{%I@P^?$hLzp4Kq=7%EoY4RUOf&OEFIzs>3)t{{C z{|lQTf&P>J@@L3@Q~#(V)<5lwcKyFy^WW5e5c54TSNe~mK>smj9f|)@B3je$uRqC} z{=cyD5A+{evAe$-dx^5f?snby>G*SH0lCRE=tgA_Be%OFhaLeDGWoart@_wskpR8a#`D(jfkHgukozwnti)OrbNX}50v%lmzM zopDMG|5P=K<3COX`hTnDKRmG8NBPfJJN`RYJO1Nx+kb4$*#2YQ8Q?!?<$rBG`R|<8 z{FgQ>|4GZ=_#b4vC|=%P{!P9`%YRsC`zObX6__82yhkbjaTJ*UGz1>e`l)SMd-{85 z`d7Ye=pRD*=Tb^sXzK5G#QKZd)jxTd=D(?b1*ViDjhf^=90mH10qh9+7{5SQlz!(x1=D}hpCInT`*slMY{*~A~3v7SVFQosb{(eWSzqnoflT$VSP5mn{ z#S?RD$bTFK`j0Uxi2wiG|DEwoY-lq2zY?qU{~NUak42^(AJzZ)YN!7@S3CV5m)rdx zSKIv`Q^A1#4_fvA&#AGOI;XY%F9#si|8e*~>Hm%GwmlGW~6zwClg7e@4vHs$A^-mt6`ETl9f%%sly9-;pW+Vx-4zY;6MK>ta9tZaW%f4_G1 z)20}GWe-1K_%*)!`77?)9QF@xiO~;HN5Jp;;J04-pN#n9ADI#leoc?o;~C3k^dm2? zUW0DqU5rQT&!eAOn7*DK;>L{;|1)<3;CytFw}qaa_CNpXu076OdtF50+zN~Oi2Y-1 z)v=(w`1kN`j%a;X?5lRZ7e@OFbZ1H3aXRdgMH>J5?xiOyvtToR5887DmXDvxXASXi zSeF=jL@X%=ziE6&_yl}&4tr}&A_DVVdXSQguGOPxS`7KYRyPZWy{ORclq61_5GK+ zfip325M8LP)sL_=VJ_&Kg6FNp({P%fKcf6Xb8h9|{lE`y(oYiXk=+FS13z-}bDGf#bKZ2K2ukI_-!@pl*B1b>xaRD_vv)@IDL0@cGBAOqh=Gg46Ly}ZB-h;=S-My_g zV11h0l|QuM-;#3=Sd4!!cjC`hBrd9aBxb*h6c1Qj);jTrLpXN#!N1GGqxCZT`wMjgU&4e%JSp1v~< z*PloNK0k}jSBgm!AtP{q`QP>L#CiVy9Zs^RLAITjvVXseF^T(k5|sVl?B7EnFG&9$ zKw9noeJ;FH-LjqjePylDzq_GA>HWK#?C&V}`2G*-f)a$kJ%?4R{@nwg=$Eut7o>mx zQRTnK@h| #q+J^!M+DuqB{>&%?w><&Wy$n=#i@{riIl{xA0L+dts`o$2r2R|7-; z9uEr+>)&Tf{&xHKE_5sE-_XZMRVx=dln`H;(gghTK`@o2QXFQKKOqqdlUGmi~IjSfdr$18x=KP7$s;>R8UZ& zP_vN0MiY$%6csHsO0jsLBpBs3S#@2vP>)t^y|rJpT3f9};z0sR#1k*P6;Ec3fF~dV z`8{9n`Rox&|BuI?hh}%@J@cOTyyrdd_j}%Rna;BDUENCavd4EQ8U^pRV>~_nvc~zP znQ{I^_BhW~{e!7L(*h}&5vfX7yLWKpI$|k1&|mrUl;6wABB061o!Ei-vl#lBvA@mw zVfOiayXAmkpj|HiZRwAFLL!nmuYZXDU4Jez@+R(^yBc1m?m}QRz3FZ?^=L=Wt}~6L zv)%3hD8rt~k&+*fXQx|2(SLU*89x98pE-yY=tcPh=BII&5z035WC7g01o=w)0_GKz zryYezj0=g}9uS23MWfmQVm6&}wU&}FFz<6xR=JAYVw8vAczKueYx48avkIg-e4s7Dei-P*|=glk`W|TC))=lmD#Jz_6hv%Na;TNgL zP;|bfONd;v=}wLTy`S9TJG+^NP|Wti>SQ3iTv%;a`xnrc$w$bAzXq!YK;GSvIxd7_ z&(W}^O*>zHV+F~B!-;G4&T*vfyKroI9sJKSw)r*o zHpBE|bwEM>rxtjJY@K7uFDWln`8MI){HzBT+Hr7};ndi^XB-?JU|2^5g+sov5~Xi` z9}ZcKuaY^*|36cJ+K%{g`mj_DJWMz4o$o7n-TluLQWeQb6`|5sNLsSI$E0wmbUA;< zzCbm?@CwziM_Ys)x{|i6B<*Yd|2~b`XjhgsP||ONr~PA(I8?d?+Bb>zcPQ`{NLBc4 zkiN+p?+dx>bK5F%ms9tE<-zBReD?n?&Hfups&4S?Ut65}YTMRs>VrhjpVZ6Y{@>9R zu~!pSJA@+NaiVhQyiOCH=<{1TI|nVNduCUJ6aQ3yhMQJ(Z`kjGt^Fs=Ut(7W&TFrI zvQK{7Yu)B`mQI-8?ecvucvY}@ZI-+|Z{E*4y>o9)=ug~}xSaXSL!8I$-t$k1ih@pr zd|0xM8ZtUS!|+`kcW<_X3j|kV7QM_SYsf7<;pHyWtc$fw_K>^KHGA>PWG@+!emU}r z|Dj)W!JJ&o&3GC=>Ag&1wOt>+L?i1W=$hRj1(&K^bFk);xuoj(v1|Es^QKcZvVS3Z z&6OCe%xbw&>w1$Lor7p|3j5d!Br9|0_qjrdBie zXmqo7%gI^H|2qFBJ$SgBC zSP(raL?LRb=8A7&jquW%)sh%K=>&0enVT3+OMe`(g(Hb8TKg1D7^kxzUG7bkhe$(=@)nD-`SjVo;)_PB&a5VH-cz`S{1#k`3o^tHp&=xX z$s}VEdY8EUNkPTY!@v8F?y1%Bbhi_flkz4hncn|tUy;7O-aiWj+@mQ0NDO~_-~B}sKJSQ4Wkw29 z{BWz=ML*v4?c8v@Z|Aej{8IRBgx2&H-kMbWNW4!qVw^|om82W2-evk8tMtidL&e8# zmwrlB(m1XgXtqbf(vDWcMO>TzE-k3o&ifB`IRMv8(zf>&3JFtD)W#C`_iu=m#q~_| zR+OOpAWomU0cGj14fWo5KG zG5qP{(BJm}_WOOgw0@5VyK_ft>E(quXo>to_!Vheogc~Fn7unV<-ZcQ_$9RP1jpf1 ztWkOI(8BIbZr@1{Zs}|&2rV4ht&$tPD|ppd@h-oAXHcuRNSLE778Ohkx$$yHQQ+;c z1N_*1{TD7TsQbYkC$kf;%o!0{IBcq$KphZ1U?}>-dOu#vZ3xd{x^^R97+0`&Zs-pO z0}7isROXzL7;sF}(r$@MzXZeB(r!&(Z3#uWBrB&XG4`~)NZkjKM9Sew1~{TlaYRL6Rj)X?MYPgw6=L{AzMD)ctW5_qsngM_1}goA4|+?`;aR2f|# zir%aS@R)g|jEG$QPU2^BS6He0xw7|uFKGICpHTCi#y&38g%P~HF(gDqBNDy)u5T*{ zMgM`su5ar`kcnJPpK^oB+nzg*UezsURA}LarFpIg1bQ=CsW47=I5OD-}WFqoh48!xXDMxR%jM?aP# zN1WiBTIAYHPslo`wx#sFuiNzU+wO+PQx+^SP*lvV2;2wBV>9g2VI{fbE(Pp^F5in% zUAp|>bevaRUXVpPZou2_oyP*w>36tw^|TcAeT@1I$>DIs$K||!G3^rD;-9V2nnP)P zdLiRrKDSBd#K#oqHPOV7Q{Y1MjoGJ2E_waTcg0yxXwGMyQC0Vid-_tf_UK41w{m|H z$zAJ?{{=?uBu0EUMWEv&JR-avbsNrouHyK*f|*Z*6P4Wtt-+TlijN$Mm->glk~iG8lvB2qar0lIw495CU7m$7)w!&v$N^dkf^aMe z(Vo^=E4qEw(IQ?KrNgGnFGH?3PgVc&-&gLBs4QlzgyGk_x9QHZDMLf^&yzmwssn;J zMz4V&i){*c0lvM!H)xG}2#mBOc`4ZYKtv=ygMmD)){l30yqb_boKGY?7(b~{&J{0j zm|GWJK4+hfDM39$UItT2_-lkbKA4fU!F|V&^b#EVnije5(z1q!i%`2(Tx94fJ}PAk zOb6~{E#`L8t?o`}DVtI_=QiDPgTM|hao3Xs^$$M`_22%Uk+zn>l@*h*^`B^G{qO9a z5{y&)1oyydwK9Adx%Y(i+IrM=a*KoJmrojy$W)99=@KC$cHdN&QuA>9gj>} zpm`k9Yd0(vD7HQd6KZcky%{O{sJivq26&#Rl`V;cQWVD52C z*;m=3A2cjQ1`2}3Gaik~%ulU0MWLvylbaZLPAEQO@}SnH8HES>THJeGFs({qVik_| z=~ib7mZa`W;5F%{jeY71np`n={9KOaIzjiSlc(Ved<5vArbMs%uf$0?!tBbBp2!DX zwz~vw3tg7gTa&O~p0eslbbbBkNc>OcS;Cj&2eq2LDce+kSR_8DJg9^f#$JtAfIO0C z!t*Gn`$7IDAMP%Yi~6PH8LK=aeV(|_)28t>vnv7CAAV8|XGBZx2f_Mpy=PrP1p zpFboaoG~83=c;&j-y#^;2ZdAS05N7hEl-mTw}NJ1$32r2TPuFWM^(~ODO z@3U%syt*dJV=cEZGQ#mWh3K)0yBA|In>6m%!p^Yr|pTra6WChU25p^Y2V***L#!E;|m*uU5uqPvn)F%0Xpq zq3AGv&t($rYkr(q)DQ$3&oP3vM~Cfedf3cfLD zR#kjXqZ>siJRBQ+Uh-6sf^2BKwh(W&<3;4@L>%>≪)U^dgg|(=~d|{T*2oy>=G3 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ગS zxX~9*6y)*j2+vlDL@bFVS^wYYL20VUzv#24OxfptF(G#`y*@a^Seq@4T>&w=eE`VNC;5|}cFNKM&Uh(%J*a}%!#Bk8|3~EbfR`KHhhb7S-!w{zoi2J?J?CH&%T&3hh*w*bVgX%P^$lA{N|iy73#S> zqEPFuntOYpj4cc9U57F3R5QGoPS1n;EiKG|dn_%KKpnBVLfLGFZ)Ci{WzLNRZ(Hiz zC=)29295#}XNs){%2#X06|d6{a}F8Z{u5X? z6y2rVg7|=(eaLC=G1b|HHkU;kL41D)TZ!zpXl%v?DmUgcJhBQvYltZa6$fLZ!FCm= zq}5DPiBNo2<_1{6AVTQ>((*;&q)HO8l z4rV$mP)Qz{-){9Zfb#(ONa`0elke)I)eg>U$l)4R@4ALcU-9436BaX@HZi?uCAsly zvB&+Pc)hQXrswX^HV^;&XTYM0^t45qC5-B46?C1zp}O94w>lQ3c$OT>G1}@y#Qy2N z52>xpts|z?<_$e+qOVqWZwka0YwselLZ;WLYO*?`)j13z2()zTmEfri_nqT*Tps(D zUXjkd5$^k^?t4z+eXaZ6J@MYmdx~GWT8pyZ>o|a%Y-&!Y&IMOmedMXv(@t}VX9Y|J zB|d&CCElVg%xTF%oiAujkKM2YrpMRc&|58PB<2ieiTavj(TA zP_|r$PRto9BdgG|l*x$FgZmReVG8C!wf@5e;O`F_kpQB{GX %1=j?Yo22+{~Ez?J=Fxue7?hc7(&vrulg%? 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%0AwDmG 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 aJpYpd4uRxUq`jPVi-vzxKzQKM`TqdLTmkL? diff --git a/.circleci/lib/libonig.so.5 b/.circleci/lib/libonig.so.5 deleted file mode 100644 index 2408aea05d9e8ef4564a8e2e5c3e3afcf8aca933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580832 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

GqaN7 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 bK$7-#vI?@FKmK+1S6xZ_l3DAYl@0tKf&{D( diff --git a/.circleci/query_manifest b/.circleci/query_manifest deleted file mode 100755 index 9e9629b156..0000000000 --- a/.circleci/query_manifest +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -CMD=$1 -REPO=$2 - -ROOT=$(git rev-parse --show-toplevel) - -case "$CMD" in - dockerfile) - jq -r ".\"$REPO\".dockerfile // \"Dockerfile\"" $ROOT/build_manifest.json - ;; - buildDir) - jq -r ".\"$REPO\".buildDir" $ROOT/build_manifest.json - ;; - projectDir) - jq -r ".\"$REPO\".projectDir // .\"$REPO\".buildDir" $ROOT/build_manifest.json - ;; - dependencies) - ALL_DEPS=() - add_deps() { - DEPS=($(jq -r ".\"$1\".dependencies // [] | .[]" $ROOT/build_manifest.json)) - ALL_DEPS=(${ALL_DEPS[@]} ${DEPS[@]}) - for DEP in "${DEPS[@]}"; do - add_deps $DEP - done - } - add_deps $REPO - printf "%s\n" "${ALL_DEPS[@]}" | sort | uniq - ;; - rebuildPatterns) - ALL_PATTERNS=($(jq -r ".\"$REPO\".rebuildPatterns | .[]" $ROOT/build_manifest.json)) - DEPS=($($0 dependencies $REPO)) - for DEP in "${DEPS[@]}"; do - PATTERNS=($(jq -r ".\"$DEP\".rebuildPatterns | .[]" $ROOT/build_manifest.json)) - ALL_PATTERNS=(${ALL_PATTERNS[@]} ${PATTERNS[@]}) - done - printf "%s\n" "${ALL_PATTERNS[@]}" | sort | uniq - ;; -esac \ No newline at end of file diff --git a/.circleci/remote/32core.json b/.circleci/remote/32core.json deleted file mode 100644 index 79f0f396d8..0000000000 --- a/.circleci/remote/32core.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ImageId": "ami-0e5df77ac318c7a18", - "KeyName": "build-instance", - "SecurityGroupIds": ["sg-0ccd4e5df0dcca0c9"], - "InstanceType": "r5.8xlarge", - "BlockDeviceMappings": [ - { - "DeviceName": "/dev/sda1", - "Ebs": { - "VolumeSize": 16 - } - } - ] -} diff --git a/.circleci/remote/64core.json b/.circleci/remote/64core.json deleted file mode 100644 index 13df8fd353..0000000000 --- a/.circleci/remote/64core.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ImageId": "ami-0e5df77ac318c7a18", - "KeyName": "build-instance", - "SecurityGroupIds": ["sg-0ccd4e5df0dcca0c9"], - "InstanceType": "r5.16xlarge", - "BlockDeviceMappings": [ - { - "DeviceName": "/dev/sda1", - "Ebs": { - "VolumeSize": 16 - } - } - ] -} diff --git a/.circleci/remote/ssh_config b/.circleci/remote/ssh_config deleted file mode 100644 index 96cc4d910e..0000000000 --- a/.circleci/remote/ssh_config +++ /dev/null @@ -1,3 +0,0 @@ -IdentityFile ~/.ssh/build_instance_key -StrictHostKeyChecking no -User ubuntu \ No newline at end of file diff --git a/.circleci/remote_build/remote_build b/.circleci/remote_build/remote_build deleted file mode 100755 index 92fe12a6af..0000000000 --- a/.circleci/remote_build/remote_build +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -set -e - -ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts - -echo "Initialising remote build..." - -# Shallow checkout this commit. -mkdir project -cd project -git init -git remote add origin $GIT_REPOSITORY_URL -# Configure to only download metadata when fetching. -git config remote.origin.promisor true -git config remote.origin.partialclonefilter blob:none -git fetch --depth 50 origin $COMMIT_HASH -git checkout FETCH_HEAD - -echo "Git operations completed..." - -cd .circleci -BASH_ENV=/tmp/bash_env -echo "Calling setup env..." -source ./setup_env "$COMMIT_HASH" "$COMMIT_TAG" "$JOB_NAME" "$GIT_REPOSITORY_URL" -cd .. -echo "Calling build..." -build $@ \ No newline at end of file diff --git a/.circleci/remote_run_script b/.circleci/remote_run_script deleted file mode 100755 index b62b6b9cf1..0000000000 --- a/.circleci/remote_run_script +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -set -e - -IP=$1 -FULL_PATH=$2 -shift -shift - -SSH_CONFIG_PATH=${SSH_CONFIG_PATH:-$BUILD_SYSTEM_PATH/remote/ssh_config} -DIR_NAME=$(dirname $FULL_PATH) -SCRIPT_NAME=$(basename $FULL_PATH) - -# Copy all files in script directory to spot instance. -scp -F $SSH_CONFIG_PATH $DIR_NAME/* $IP:. - -# Run script on remote instance. -ssh -A -F $SSH_CONFIG_PATH $IP "COMMIT_HASH=$COMMIT_HASH COMMIT_TAG=$COMMIT_TAG JOB_NAME=$JOB_NAME GIT_REPOSITORY_URL=$GIT_REPOSITORY_URL DOCKERHUB_PASSWORD=$DOCKERHUB_PASSWORD ./$SCRIPT_NAME $@" \ No newline at end of file diff --git a/.circleci/request_spot b/.circleci/request_spot deleted file mode 100755 index 027037ce65..0000000000 --- a/.circleci/request_spot +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -set -e - -NAME=$1 -CPUS=${2:-32} - -export AWS_DEFAULT_REGION=us-east-2 - -BID_PER_CPU_HOUR=0.03125 -PRICE=$(jq -n "$BID_PER_CPU_HOUR*$CPUS*100000 | round / 100000") - ->&2 echo "Requesting $CPUS cpu instance (bid: $PRICE)..." -SIR=$(aws ec2 request-spot-instances \ - --spot-price "$PRICE" \ - --instance-count 1 \ - --type "one-time" \ - --launch-specification file://$BUILD_SYSTEM_PATH/remote/${CPUS}core.json \ - --query "SpotInstanceRequests[*].[SpotInstanceRequestId]" \ - --output text) - ->&2 echo "Waiting for instance id for spot request: $SIR..." -sleep 5 -for I in {1..6}; do - IID=$(aws ec2 describe-spot-instance-requests \ - --spot-instance-request-ids $SIR \ - --query "SpotInstanceRequests[*].[InstanceId]" \ - --output text) - - [ -z "$IID" -o "$IID" == "None" ] || break - - if [ $I -eq 6 ]; then - # Cancel spot request. We may still get allocated an instance if it's *just* happened. - aws ec2 cancel-spot-instance-requests --spot-instance-request-ids $SIR > /dev/null - fi - - sleep 5 -done - -if [ -z "$IID" -o "$IID" == "None" ]; then - # Request on-demand instance. - >&2 echo "Falling back to on-demand instance..." - IID=$(aws ec2 run-instances \ - --cli-input-json file://$BUILD_SYSTEM_PATH/remote/${CPUS}core.json \ - --query "Instances[*].[InstanceId]" \ - --output text) -fi - -aws ec2 create-tags --resources $IID --tags "Key=Name,Value=$NAME" -aws ec2 create-tags --resources $IID --tags "Key=Group,Value=build-instance" - -while [ -z "$IP" ]; do - sleep 1 - IP=$(aws ec2 describe-instances \ - --filter "Name=instance-id,Values=$IID" \ - --query "Reservations[*].Instances[*].PublicIpAddress" \ - --output=text) -done - -# Wait till ssh port is open. ->&2 echo "Waiting for SSH at $IP..." -while ! nc -z $IP 22; do sleep 1; done; - -echo $IP \ No newline at end of file diff --git a/.circleci/setup_env b/.circleci/setup_env deleted file mode 100755 index 471ed9597c..0000000000 --- a/.circleci/setup_env +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash -# This script sets up the global build environment. This should be called before any other build scripts, -# as the other build scripts assume these global variables are set. The global variables are written to -# the file in $BASH_ENV, which means that any new bash shells launched within the lifetime of the machine -# context will have these variables set. This happens for example when CircleCI runs a new "step". -# The script should be sourced, e.g: -# source setup_env -# This ensures the resultant variables are set in the calling shell. -set -e - -COMMIT_HASH=$1 -COMMIT_TAG=$2 -JOB_NAME=$3 -GIT_REPOSITORY_URL=$4 -BRANCH=$5 - -BUILD_SYSTEM_PATH=$(pwd) -# PROJECT=$(cat ../PROJECT) -# VERSION=$(cat ../VERSION) - -echo "Setting up environment COMMIT_HASH=$COMMIT_HASH, COMMIT_TAG=$COMMIT_TAG, JOB_NAME=$JOB_NAME, GIT_REPOSITORY_URL=$GIT_REPOSITORY_URL" - -# if [ -n "$COMMIT_TAG" ]; then -# # We're tagged e.g. v2.1.123 or v2.1.123-testnet.0. -# # First we sanity check that the tag matches the VERSION file. -# echo "Extracting commit tag version..." -# # Strips the e.g. '-testnet.XX' from the COMMIT_TAG -# WITHOUT_VERSION_TAG=${COMMIT_TAG%%-*} -# # Strips the subversion, leaving just the 'vMAJ.MIN' e.g. v2.1 -# COMMIT_TAG_VERSION=${WITHOUT_VERSION_TAG%.*} -# echo "WITHOUT_VERSION_TAG=$WITHOUT_VERSION_TAG" -# echo "COMMIT_TAG_VERSION=$COMMIT_TAG_VERSION" -# # COMMIT_TAG_VERSION=$(echo "$COMMIT_TAG" | grep -oE "v\d+.\d+") -# if [ "$COMMIT_TAG_VERSION" != "$VERSION" ]; then -# echo "Commit tag $COMMIT_TAG does not match repo version $VERSION." -# exit 1 -# fi - -# # Extract the version tag from the commit tag, if it has one, e.g. testnet. -# # If we have one, we look something like v2.1.123-testnet.0. This is a "non production" release. -# if [[ "$COMMIT_TAG" == *"-"* ]]; then -# # Strips the trailing '.XX' from the end of the commit tag -# TEMP=${COMMIT_TAG%.*} -# # Strips the 'vX.Y.ZZZ-' from the front of the commit tag, leaving the e.g. 'testnet' -# VERSION_TAG=${TEMP##*-} -# else -# VERSION_TAG=prod -# fi -# else -# # We have no commit tag. This is one of our development project branches. -# VERSION_TAG=dev -# fi - -# # - The deploy tag (used in api paths, subdomains), is a concatenation of the project name and version tag, -# # e.g. aztec-connect-dev, aztec-connect-testnet, or aztec-connect-prod -# DEPLOY_TAG=$PROJECT-$VERSION_TAG - -if [ -z "$BASH_ENV" ]; then - BASH_ENV=$(mktemp) -fi - -echo export ROOT_PATH=$(cd .. && echo ${PWD}) >> $BASH_ENV -echo export BUILD_SYSTEM_PATH=$BUILD_SYSTEM_PATH >> $BASH_ENV -echo export SSH_CONFIG_PATH=$BUILD_SYSTEM_PATH/remote/ssh_config >> $BASH_ENV -echo export PATH=$PATH:$BUILD_SYSTEM_PATH >> $BASH_ENV -echo export AWS_DEFAULT_REGION=eu-west-2 >> $BASH_ENV -echo export ECR_REGION=us-east-2 >> $BASH_ENV -echo export AWS_ACCOUNT=278380418400 >> $BASH_ENV -echo export ECR_URL=278380418400.dkr.ecr.us-east-2.amazonaws.com >> $BASH_ENV -# echo export ECR_DEPLOY_REGION=eu-west-2 >> $BASH_ENV -# echo export ECR_DEPLOY_URL=278380418400.dkr.ecr.eu-west-2.amazonaws.com >> $BASH_ENV -# echo export PROJECT=$PROJECT >> $BASH_ENV -echo export COMMIT_HASH=$COMMIT_HASH >> $BASH_ENV -echo export COMMIT_TAG=$COMMIT_TAG >> $BASH_ENV -echo export JOB_NAME=$JOB_NAME >> $BASH_ENV -echo export GIT_REPOSITORY_URL=$GIT_REPOSITORY_URL >> $BASH_ENV -# echo export VERSION_TAG=$VERSION_TAG >> $BASH_ENV -# echo export DEPLOY_TAG=$DEPLOY_TAG >> $BASH_ENV -echo export BRANCH=$BRANCH >> $BASH_ENV -# Our alpine build image has jq installed, ubuntu build instances use our committed version. -if [ ! -f /etc/alpine-release ]; then - echo export PATH=\$PATH:$BUILD_SYSTEM_PATH/bin >> $BASH_ENV - echo export LD_LIBRARY_PATH=$BUILD_SYSTEM_PATH/lib >> $BASH_ENV -fi -cat $BASH_ENV - -# Having written the variables to $BASH_ENV, we now want to set them in this shell context. -source $BASH_ENV - -# Only run the following if we're the result of a commit (i.e. not being run manually). -if [ -n "$COMMIT_HASH" ]; then - # Install and ensure correct permissions on build instance key. - mkdir -p ~/.ssh - echo $BUILD_INSTANCE_KEY | base64 -d > ~/.ssh/build_instance_key - chmod 600 ~/.ssh/build_instance_key -fi - -set +e diff --git a/.circleci/spot_run_script b/.circleci/spot_run_script deleted file mode 100755 index 550019df32..0000000000 --- a/.circleci/spot_run_script +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# Runs a test script on a remote spot instance. Arguments are: -# 1. SPEC: Instance specification filename. -# 2... ARGS: Arguments to pass to remote_run_script. -set -e - -SPEC=$1 -shift - -# Get spot instance. -IP=$(request_spot $COMMIT_HASH:$JOB_NAME $SPEC) - -# Run script remotely on spot instance, capturing success or failure. -set +e -remote_run_script $IP $@ -CODE=$? - -# Shutdown spot. -echo "Terminating spot instance..." -ssh -F $SSH_CONFIG_PATH $IP sudo halt -p > /dev/null 2>&1 - -exit $CODE \ No newline at end of file diff --git a/.circleci/store_test_benchmark_logs b/.circleci/store_test_benchmark_logs deleted file mode 100755 index 424a9ff318..0000000000 --- a/.circleci/store_test_benchmark_logs +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -set -e - -REPOSITORY=$1 -shift - -cd $(query_manifest projectDir $REPOSITORY) - -mkdir -p /tmp/csv -export SAVED_TIMESTAMP=$(date +%s) -export HUMAN_READABLE_TIME=$(date -u -d @${SAVED_TIMESTAMP}) - -# Pick logs from test-logs and convert all information into CSV format including the current timestamp, branch, commit and tag information -for file in $(ls /tmp/test-logs); do - echo $file - cat /tmp/test-logs/$file | grep "##BENCHMARK_INFO_PREFIX##" | sed "s/.*##BENCHMARK_INFO_PREFIX##\(.*\)##BENCHMARK_INFO_SUFFIX##.*/\1/" | sed "s/#/,/g" | sed "s_\(.*\)_$SAVED_TIMESTAMP,$HUMAN_READABLE_TIME,$BRANCH,$COMMIT_HASH,$COMMIT_TAG,\1_" | tee -a /tmp/csv/new.csv 1>/dev/null -done -echo "Parsed from logs:" -cat /tmp/csv/new.csv - -# We have lots of repeated entries, no need to put them into repository. Unfortunately build times differ a bit and uniq only works with space as separator -cat /tmp/csv/new.csv | sort | sed "s_ _%_g" | sed "s_^\(.*\),\(.*\)\$_\2 \1_" | uniq -f 1 | sed "s_^\(.*\) \(.*\)\$_\2,\1_" | sed "s_%_ _g" >/tmp/csv/trimmed.csv - -# If there actually were any logs, update the information in the benchmark repository -if [ -s /tmp/csv/trimmed.csv ]; then - cd /tmp - git clone --depth 1 git@github.com-logs:AztecProtocol/benchmark-archive.git - - cd benchmark-archive - git config user.email "circleci@bot" - git config user.name "CircleCi Bot" - cat /tmp/csv/trimmed.csv >>benchmarks.csv - git add benchmarks.csv - git commit -m "Added information from branch $BRANCH commit $COMMIT_HASH" - git push -fi diff --git a/.circleci/tag_remote_image b/.circleci/tag_remote_image deleted file mode 100755 index ee42f32cb8..0000000000 --- a/.circleci/tag_remote_image +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -set -e - -REPOSITORY=$1 -EXISTING_TAG=$2 -NEW_TAG=$3 -REGION=${4:-$ECR_REGION} - -EXISTING_TAG_MANIFEST=$(aws ecr batch-get-image \ - --region $REGION \ - --repository-name $REPOSITORY \ - --image-ids imageTag=$EXISTING_TAG \ - --query images[].imageManifest \ - --output text) - -if [ -z "$EXISTING_TAG_MANIFEST" ]; then - echo "Existing tag for image not found: $1:$EXISTING_TAG" - exit 1 -fi - -NEW_TAG_MANIFEST=$(aws ecr batch-get-image \ - --region $REGION \ - --repository-name $REPOSITORY \ - --image-ids imageTag=$NEW_TAG \ - --query images[].imageManifest \ - --output text) - -if [ "$EXISTING_TAG_MANIFEST" != "$NEW_TAG_MANIFEST" ]; then - echo "Tagging $1:$EXISTING_TAG as $1:$NEW_TAG..." - aws ecr put-image \ - --region $REGION \ - --repository-name $REPOSITORY \ - --image-tag $NEW_TAG \ - --image-manifest "$EXISTING_TAG_MANIFEST" > /dev/null 2>&1 -fi \ No newline at end of file diff --git a/.circleci/untag_remote_image b/.circleci/untag_remote_image deleted file mode 100755 index f79fee729b..0000000000 --- a/.circleci/untag_remote_image +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -REPOSITORY=$1 -TAG=$2 -aws ecr batch-delete-image --region=$ECR_REGION --repository-name $REPOSITORY --image-ids imageTag=$2 > /dev/null \ No newline at end of file diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..b38d06b335 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +sol/broadcast +sol/cache +sol/out +sol/Dockerfile +sol/lib +cpp/build +cpp/srs_db/ignition +.gitmodules \ No newline at end of file diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index dd76e8301c..40c37ad659 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -3,7 +3,7 @@ name: Nix builds on: push: branches: - - phated/** + - master schedule: - cron: "0 2 * * *" # run at 2 AM UTC workflow_dispatch: @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] - target: [llvm12, wasm32, cross-aarch64] + target: [default, wasm32, cross-aarch64] steps: - name: Checkout @@ -32,6 +32,15 @@ jobs: nix_path: nixpkgs=channel:nixos-22.11 github_access_token: ${{ secrets.GITHUB_TOKEN }} + - uses: cachix/cachix-action@v12 + with: + name: barretenberg + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + + - name: Check nix flake + run: | + nix flake check + - name: Build barretenberg as ${{ matrix.target }} run: | nix build -L .#${{ matrix.target }} diff --git a/.github/workflows/noir.yml b/.github/workflows/noir.yml new file mode 100644 index 0000000000..d15c28100e --- /dev/null +++ b/.github/workflows/noir.yml @@ -0,0 +1,40 @@ +name: Noir CI + +on: + pull_request: + types: ["labeled", "opened", "synchronize", "reopened"] + +# This will cancel previous runs when a branch or PR is updated +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + noir-ci: + if: ${{ contains(github.event.pull_request.labels.*.name, 'noir-ci') }} + name: Test Noir against PR + runs-on: ubuntu-latest + + steps: + - name: Checkout Noir + uses: actions/checkout@v3 + with: + repository: noir-lang/noir + # This reference can be changed to test against a different version of Noir (such as a WIP branch) + ref: master + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + github_access_token: ${{ secrets.GITHUB_TOKEN }} + + # The GITHUB_SHA doesn't match the last commit on the PR but is instead a merge commit of the PR into master. + # As per GitHub docs: + # Note that GITHUB_SHA for this event is the last merge commit of the pull request merge branch. + - name: Update barretenberg commit in flake.lock + run: | + nix flake lock --override-input barretenberg github:AztecProtocol/barretenberg/${{ env.GITHUB_SHA }} + + - name: Build and test Noir + run: | + nix flake check -L diff --git a/.gitignore b/.gitignore index 02b9567501..895c6e97ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ -.vscode result +node_modules +.yarn/cache +.yarn/install-state.gz +ts/dest +.tsbuildinfo diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..ae63c99f6f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,15 @@ +[submodule "foundation"] + path = foundation + url = git@github.com:AztecProtocol/foundation.git +[submodule "sol/lib/forge-std"] + path = sol/lib/forge-std + url = https://github.com/foundry-rs/forge-std +[submodule "sol/lib/solidity-stringutils"] + path = sol/lib/solidity-stringutils + url = https://github.com/Arachnid/solidity-stringutils +[submodule "sol/lib/openzeppelin-contracts"] + path = sol/lib/openzeppelin-contracts + url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "build-system"] + path = build-system + url = git@github.com:AztecProtocol/build-system.git diff --git a/.vscode/settings.json b/.vscode/settings.json index 359183951d..489043bab0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -115,8 +115,8 @@ "typescript.enablePromptUseWorkspaceTsdk": true, "eslint.nodePath": "ts/.yarn/sdks", "prettier.prettierPath": "ts/.yarn/sdks/prettier/index.js", - "[cpp]": { - "editor.defaultFormatter": "ms-vscode.cpptools" + "[cpp]": { // doesn't conflict with barratenberg.code-workspace settings. + "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd" }, "[terraform]": { "editor.defaultFormatter": "hashicorp.terraform" @@ -128,4 +128,4 @@ "editor.defaultFormatter": "esbenp.prettier-vscode" }, "cmake.sourceDirectory": "${workspaceFolder}/cpp" -} +} \ No newline at end of file diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs new file mode 100644 index 0000000000..4e89c7c352 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs @@ -0,0 +1,28 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-workspace-tools", +factory: function (require) { +var plugin=(()=>{var yr=Object.create;var we=Object.defineProperty;var _r=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var br=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var W=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var q=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Cr=(e,r)=>{for(var t in r)we(e,t,{get:r[t],enumerable:!0})},Je=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Er(r))!xr.call(e,s)&&s!==t&&we(e,s,{get:()=>r[s],enumerable:!(n=_r(r,s))||n.enumerable});return e};var Be=(e,r,t)=>(t=e!=null?yr(br(e)):{},Je(r||!e||!e.__esModule?we(t,"default",{value:e,enumerable:!0}):t,e)),wr=e=>Je(we({},"__esModule",{value:!0}),e);var ve=q(ee=>{"use strict";ee.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;ee.find=(e,r)=>e.nodes.find(t=>t.type===r);ee.exceedsLimit=(e,r,t=1,n)=>n===!1||!ee.isInteger(e)||!ee.isInteger(r)?!1:(Number(r)-Number(e))/Number(t)>=n;ee.escapeNode=(e,r=0,t)=>{let n=e.nodes[r];!n||(t&&n.type===t||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};ee.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;ee.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;ee.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;ee.reduce=e=>e.reduce((r,t)=>(t.type==="text"&&r.push(t.value),t.type==="range"&&(t.type="text"),r),[]);ee.flatten=(...e)=>{let r=[],t=n=>{for(let s=0;s{"use strict";var tt=ve();rt.exports=(e,r={})=>{let t=(n,s={})=>{let i=r.escapeInvalid&&tt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c="";if(n.value)return(i||a)&&tt.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let p of n.nodes)c+=t(p);return c};return t(e)}});var st=q((Vn,nt)=>{"use strict";nt.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var ht=q((Jn,pt)=>{"use strict";var at=st(),le=(e,r,t)=>{if(at(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(r===void 0||e===r)return String(e);if(at(r)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...t};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),i=String(n.shorthand),a=String(n.capture),c=String(n.wrap),p=e+":"+r+"="+s+i+a+c;if(le.cache.hasOwnProperty(p))return le.cache[p].result;let m=Math.min(e,r),h=Math.max(e,r);if(Math.abs(m-h)===1){let y=e+"|"+r;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let R=ft(e)||ft(r),f={min:e,max:r,a:m,b:h},$=[],_=[];if(R&&(f.isPadded=R,f.maxLen=String(f.max).length),m<0){let y=h<0?Math.abs(h):1;_=it(y,Math.abs(m),f,n),m=f.a=0}return h>=0&&($=it(m,h,f,n)),f.negatives=_,f.positives=$,f.result=Sr(_,$,n),n.capture===!0?f.result=`(${f.result})`:n.wrap!==!1&&$.length+_.length>1&&(f.result=`(?:${f.result})`),le.cache[p]=f,f.result};function Sr(e,r,t){let n=Pe(e,r,"-",!1,t)||[],s=Pe(r,e,"",!1,t)||[],i=Pe(e,r,"-?",!0,t)||[];return n.concat(i).concat(s).join("|")}function vr(e,r){let t=1,n=1,s=ut(e,t),i=new Set([r]);for(;e<=s&&s<=r;)i.add(s),t+=1,s=ut(e,t);for(s=ct(r+1,n)-1;e1&&c.count.pop(),c.count.push(h.count[0]),c.string=c.pattern+lt(c.count),a=m+1;continue}t.isPadded&&(R=Lr(m,t,n)),h.string=R+h.pattern+lt(h.count),i.push(h),a=m+1,c=h}return i}function Pe(e,r,t,n,s){let i=[];for(let a of e){let{string:c}=a;!n&&!ot(r,"string",c)&&i.push(t+c),n&&ot(r,"string",c)&&i.push(t+c)}return i}function $r(e,r){let t=[];for(let n=0;nr?1:r>e?-1:0}function ot(e,r,t){return e.some(n=>n[r]===t)}function ut(e,r){return Number(String(e).slice(0,-r)+"9".repeat(r))}function ct(e,r){return e-e%Math.pow(10,r)}function lt(e){let[r=0,t=""]=e;return t||r>1?`{${r+(t?","+t:"")}}`:""}function kr(e,r,t){return`[${e}${r-e===1?"":"-"}${r}]`}function ft(e){return/^-?(0+)\d/.test(e)}function Lr(e,r,t){if(!r.isPadded)return e;let n=Math.abs(r.maxLen-String(e).length),s=t.relaxZeros!==!1;switch(n){case 0:return"";case 1:return s?"0?":"0";case 2:return s?"0{0,2}":"00";default:return s?`0{0,${n}}`:`0{${n}}`}}le.cache={};le.clearCache=()=>le.cache={};pt.exports=le});var Ue=q((es,Et)=>{"use strict";var Or=W("util"),At=ht(),dt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Nr=e=>r=>e===!0?Number(r):String(r),Me=e=>typeof e=="number"||typeof e=="string"&&e!=="",Ae=e=>Number.isInteger(+e),De=e=>{let r=`${e}`,t=-1;if(r[0]==="-"&&(r=r.slice(1)),r==="0")return!1;for(;r[++t]==="0";);return t>0},Ir=(e,r,t)=>typeof e=="string"||typeof r=="string"?!0:t.stringify===!0,Br=(e,r,t)=>{if(r>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?r-1:r,"0")}return t===!1?String(e):e},gt=(e,r)=>{let t=e[0]==="-"?"-":"";for(t&&(e=e.slice(1),r--);e.length{e.negatives.sort((a,c)=>ac?1:0),e.positives.sort((a,c)=>ac?1:0);let t=r.capture?"":"?:",n="",s="",i;return e.positives.length&&(n=e.positives.join("|")),e.negatives.length&&(s=`-(${t}${e.negatives.join("|")})`),n&&s?i=`${n}|${s}`:i=n||s,r.wrap?`(${t}${i})`:i},mt=(e,r,t,n)=>{if(t)return At(e,r,{wrap:!1,...n});let s=String.fromCharCode(e);if(e===r)return s;let i=String.fromCharCode(r);return`[${s}-${i}]`},Rt=(e,r,t)=>{if(Array.isArray(e)){let n=t.wrap===!0,s=t.capture?"":"?:";return n?`(${s}${e.join("|")})`:e.join("|")}return At(e,r,t)},yt=(...e)=>new RangeError("Invalid range arguments: "+Or.inspect(...e)),_t=(e,r,t)=>{if(t.strictRanges===!0)throw yt([e,r]);return[]},Mr=(e,r)=>{if(r.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Dr=(e,r,t=1,n={})=>{let s=Number(e),i=Number(r);if(!Number.isInteger(s)||!Number.isInteger(i)){if(n.strictRanges===!0)throw yt([e,r]);return[]}s===0&&(s=0),i===0&&(i=0);let a=s>i,c=String(e),p=String(r),m=String(t);t=Math.max(Math.abs(t),1);let h=De(c)||De(p)||De(m),R=h?Math.max(c.length,p.length,m.length):0,f=h===!1&&Ir(e,r,n)===!1,$=n.transform||Nr(f);if(n.toRegex&&t===1)return mt(gt(e,R),gt(r,R),!0,n);let _={negatives:[],positives:[]},y=T=>_[T<0?"negatives":"positives"].push(Math.abs(T)),E=[],S=0;for(;a?s>=i:s<=i;)n.toRegex===!0&&t>1?y(s):E.push(Br($(s,S),R,f)),s=a?s-t:s+t,S++;return n.toRegex===!0?t>1?Pr(_,n):Rt(E,null,{wrap:!1,...n}):E},Ur=(e,r,t=1,n={})=>{if(!Ae(e)&&e.length>1||!Ae(r)&&r.length>1)return _t(e,r,n);let s=n.transform||(f=>String.fromCharCode(f)),i=`${e}`.charCodeAt(0),a=`${r}`.charCodeAt(0),c=i>a,p=Math.min(i,a),m=Math.max(i,a);if(n.toRegex&&t===1)return mt(p,m,!1,n);let h=[],R=0;for(;c?i>=a:i<=a;)h.push(s(i,R)),i=c?i-t:i+t,R++;return n.toRegex===!0?Rt(h,null,{wrap:!1,options:n}):h},$e=(e,r,t,n={})=>{if(r==null&&Me(e))return[e];if(!Me(e)||!Me(r))return _t(e,r,n);if(typeof t=="function")return $e(e,r,1,{transform:t});if(dt(t))return $e(e,r,0,t);let s={...n};return s.capture===!0&&(s.wrap=!0),t=t||s.step||1,Ae(t)?Ae(e)&&Ae(r)?Dr(e,r,t,s):Ur(e,r,Math.max(Math.abs(t),1),s):t!=null&&!dt(t)?Mr(t,s):$e(e,r,1,t)};Et.exports=$e});var Ct=q((ts,xt)=>{"use strict";var Gr=Ue(),bt=ve(),qr=(e,r={})=>{let t=(n,s={})=>{let i=bt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c=i===!0||a===!0,p=r.escapeInvalid===!0?"\\":"",m="";if(n.isOpen===!0||n.isClose===!0)return p+n.value;if(n.type==="open")return c?p+n.value:"(";if(n.type==="close")return c?p+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":c?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let h=bt.reduce(n.nodes),R=Gr(...h,{...r,wrap:!1,toRegex:!0});if(R.length!==0)return h.length>1&&R.length>1?`(${R})`:R}if(n.nodes)for(let h of n.nodes)m+=t(h,n);return m};return t(e)};xt.exports=qr});var vt=q((rs,St)=>{"use strict";var Kr=Ue(),wt=He(),he=ve(),fe=(e="",r="",t=!1)=>{let n=[];if(e=[].concat(e),r=[].concat(r),!r.length)return e;if(!e.length)return t?he.flatten(r).map(s=>`{${s}}`):r;for(let s of e)if(Array.isArray(s))for(let i of s)n.push(fe(i,r,t));else for(let i of r)t===!0&&typeof i=="string"&&(i=`{${i}}`),n.push(Array.isArray(i)?fe(s,i,t):s+i);return he.flatten(n)},Wr=(e,r={})=>{let t=r.rangeLimit===void 0?1e3:r.rangeLimit,n=(s,i={})=>{s.queue=[];let a=i,c=i.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,c=a.queue;if(s.invalid||s.dollar){c.push(fe(c.pop(),wt(s,r)));return}if(s.type==="brace"&&s.invalid!==!0&&s.nodes.length===2){c.push(fe(c.pop(),["{}"]));return}if(s.nodes&&s.ranges>0){let R=he.reduce(s.nodes);if(he.exceedsLimit(...R,r.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=Kr(...R,r);f.length===0&&(f=wt(s,r)),c.push(fe(c.pop(),f)),s.nodes=[];return}let p=he.encloseBrace(s),m=s.queue,h=s;for(;h.type!=="brace"&&h.type!=="root"&&h.parent;)h=h.parent,m=h.queue;for(let R=0;R{"use strict";Ht.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Nt=q((ss,Ot)=>{"use strict";var jr=He(),{MAX_LENGTH:Tt,CHAR_BACKSLASH:Ge,CHAR_BACKTICK:Fr,CHAR_COMMA:Qr,CHAR_DOT:Xr,CHAR_LEFT_PARENTHESES:Zr,CHAR_RIGHT_PARENTHESES:Yr,CHAR_LEFT_CURLY_BRACE:zr,CHAR_RIGHT_CURLY_BRACE:Vr,CHAR_LEFT_SQUARE_BRACKET:kt,CHAR_RIGHT_SQUARE_BRACKET:Lt,CHAR_DOUBLE_QUOTE:Jr,CHAR_SINGLE_QUOTE:en,CHAR_NO_BREAK_SPACE:tn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:rn}=$t(),nn=(e,r={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let t=r||{},n=typeof t.maxLength=="number"?Math.min(Tt,t.maxLength):Tt;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},i=[s],a=s,c=s,p=0,m=e.length,h=0,R=0,f,$={},_=()=>e[h++],y=E=>{if(E.type==="text"&&c.type==="dot"&&(c.type="text"),c&&c.type==="text"&&E.type==="text"){c.value+=E.value;return}return a.nodes.push(E),E.parent=a,E.prev=c,c=E,E};for(y({type:"bos"});h0){if(a.ranges>0){a.ranges=0;let E=a.nodes.shift();a.nodes=[E,{type:"text",value:jr(a)}]}y({type:"comma",value:f}),a.commas++;continue}if(f===Xr&&R>0&&a.commas===0){let E=a.nodes;if(R===0||E.length===0){y({type:"text",value:f});continue}if(c.type==="dot"){if(a.range=[],c.value+=f,c.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,c.type="text";continue}a.ranges++,a.args=[];continue}if(c.type==="range"){E.pop();let S=E[E.length-1];S.value+=c.value+f,c=S,a.ranges--;continue}y({type:"dot",value:f});continue}y({type:"text",value:f})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(T=>{T.nodes||(T.type==="open"&&(T.isOpen=!0),T.type==="close"&&(T.isClose=!0),T.nodes||(T.type="text"),T.invalid=!0)});let E=i[i.length-1],S=E.nodes.indexOf(a);E.nodes.splice(S,1,...a.nodes)}while(i.length>0);return y({type:"eos"}),s};Ot.exports=nn});var Pt=q((as,Bt)=>{"use strict";var It=He(),sn=Ct(),an=vt(),on=Nt(),Z=(e,r={})=>{let t=[];if(Array.isArray(e))for(let n of e){let s=Z.create(n,r);Array.isArray(s)?t.push(...s):t.push(s)}else t=[].concat(Z.create(e,r));return r&&r.expand===!0&&r.nodupes===!0&&(t=[...new Set(t)]),t};Z.parse=(e,r={})=>on(e,r);Z.stringify=(e,r={})=>It(typeof e=="string"?Z.parse(e,r):e,r);Z.compile=(e,r={})=>(typeof e=="string"&&(e=Z.parse(e,r)),sn(e,r));Z.expand=(e,r={})=>{typeof e=="string"&&(e=Z.parse(e,r));let t=an(e,r);return r.noempty===!0&&(t=t.filter(Boolean)),r.nodupes===!0&&(t=[...new Set(t)]),t};Z.create=(e,r={})=>e===""||e.length<3?[e]:r.expand!==!0?Z.compile(e,r):Z.expand(e,r);Bt.exports=Z});var me=q((is,qt)=>{"use strict";var un=W("path"),se="\\\\/",Mt=`[^${se}]`,ie="\\.",cn="\\+",ln="\\?",Te="\\/",fn="(?=.)",Dt="[^/]",qe=`(?:${Te}|$)`,Ut=`(?:^|${Te})`,Ke=`${ie}{1,2}${qe}`,pn=`(?!${ie})`,hn=`(?!${Ut}${Ke})`,dn=`(?!${ie}{0,1}${qe})`,gn=`(?!${Ke})`,An=`[^.${Te}]`,mn=`${Dt}*?`,Gt={DOT_LITERAL:ie,PLUS_LITERAL:cn,QMARK_LITERAL:ln,SLASH_LITERAL:Te,ONE_CHAR:fn,QMARK:Dt,END_ANCHOR:qe,DOTS_SLASH:Ke,NO_DOT:pn,NO_DOTS:hn,NO_DOT_SLASH:dn,NO_DOTS_SLASH:gn,QMARK_NO_DOT:An,STAR:mn,START_ANCHOR:Ut},Rn={...Gt,SLASH_LITERAL:`[${se}]`,QMARK:Mt,STAR:`${Mt}*?`,DOTS_SLASH:`${ie}{1,2}(?:[${se}]|$)`,NO_DOT:`(?!${ie})`,NO_DOTS:`(?!(?:^|[${se}])${ie}{1,2}(?:[${se}]|$))`,NO_DOT_SLASH:`(?!${ie}{0,1}(?:[${se}]|$))`,NO_DOTS_SLASH:`(?!${ie}{1,2}(?:[${se}]|$))`,QMARK_NO_DOT:`[^.${se}]`,START_ANCHOR:`(?:^|[${se}])`,END_ANCHOR:`(?:[${se}]|$)`},yn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};qt.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:yn,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:un.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Rn:Gt}}});var Re=q(Q=>{"use strict";var _n=W("path"),En=process.platform==="win32",{REGEX_BACKSLASH:bn,REGEX_REMOVE_BACKSLASH:xn,REGEX_SPECIAL_CHARS:Cn,REGEX_SPECIAL_CHARS_GLOBAL:wn}=me();Q.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Q.hasRegexChars=e=>Cn.test(e);Q.isRegexChar=e=>e.length===1&&Q.hasRegexChars(e);Q.escapeRegex=e=>e.replace(wn,"\\$1");Q.toPosixSlashes=e=>e.replace(bn,"/");Q.removeBackslashes=e=>e.replace(xn,r=>r==="\\"?"":r);Q.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Q.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:En===!0||_n.sep==="\\";Q.escapeLast=(e,r,t)=>{let n=e.lastIndexOf(r,t);return n===-1?e:e[n-1]==="\\"?Q.escapeLast(e,r,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Q.removePrefix=(e,r={})=>{let t=e;return t.startsWith("./")&&(t=t.slice(2),r.prefix="./"),t};Q.wrapOutput=(e,r={},t={})=>{let n=t.contains?"":"^",s=t.contains?"":"$",i=`${n}(?:${e})${s}`;return r.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var Yt=q((us,Zt)=>{"use strict";var Kt=Re(),{CHAR_ASTERISK:We,CHAR_AT:Sn,CHAR_BACKWARD_SLASH:ye,CHAR_COMMA:vn,CHAR_DOT:je,CHAR_EXCLAMATION_MARK:Fe,CHAR_FORWARD_SLASH:Xt,CHAR_LEFT_CURLY_BRACE:Qe,CHAR_LEFT_PARENTHESES:Xe,CHAR_LEFT_SQUARE_BRACKET:Hn,CHAR_PLUS:$n,CHAR_QUESTION_MARK:Wt,CHAR_RIGHT_CURLY_BRACE:Tn,CHAR_RIGHT_PARENTHESES:jt,CHAR_RIGHT_SQUARE_BRACKET:kn}=me(),Ft=e=>e===Xt||e===ye,Qt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},Ln=(e,r)=>{let t=r||{},n=e.length-1,s=t.parts===!0||t.scanToEnd===!0,i=[],a=[],c=[],p=e,m=-1,h=0,R=0,f=!1,$=!1,_=!1,y=!1,E=!1,S=!1,T=!1,L=!1,z=!1,I=!1,re=0,K,g,v={value:"",depth:0,isGlob:!1},k=()=>m>=n,l=()=>p.charCodeAt(m+1),H=()=>(K=g,p.charCodeAt(++m));for(;m0&&(B=p.slice(0,h),p=p.slice(h),R-=h),w&&_===!0&&R>0?(w=p.slice(0,R),o=p.slice(R)):_===!0?(w="",o=p):w=p,w&&w!==""&&w!=="/"&&w!==p&&Ft(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),t.unescape===!0&&(o&&(o=Kt.removeBackslashes(o)),w&&T===!0&&(w=Kt.removeBackslashes(w)));let u={prefix:B,input:e,start:h,base:w,glob:o,isBrace:f,isBracket:$,isGlob:_,isExtglob:y,isGlobstar:E,negated:L,negatedExtglob:z};if(t.tokens===!0&&(u.maxDepth=0,Ft(g)||a.push(v),u.tokens=a),t.parts===!0||t.tokens===!0){let P;for(let b=0;b{"use strict";var ke=me(),Y=Re(),{MAX_LENGTH:Le,POSIX_REGEX_SOURCE:On,REGEX_NON_SPECIAL_CHARS:Nn,REGEX_SPECIAL_CHARS_BACKREF:In,REPLACEMENTS:zt}=ke,Bn=(e,r)=>{if(typeof r.expandRange=="function")return r.expandRange(...e,r);e.sort();let t=`[${e.join("-")}]`;try{new RegExp(t)}catch{return e.map(s=>Y.escapeRegex(s)).join("..")}return t},de=(e,r)=>`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`,Vt=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=zt[e]||e;let t={...r},n=typeof t.maxLength=="number"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let i={type:"bos",value:"",output:t.prepend||""},a=[i],c=t.capture?"":"?:",p=Y.isWindows(r),m=ke.globChars(p),h=ke.extglobChars(m),{DOT_LITERAL:R,PLUS_LITERAL:f,SLASH_LITERAL:$,ONE_CHAR:_,DOTS_SLASH:y,NO_DOT:E,NO_DOT_SLASH:S,NO_DOTS_SLASH:T,QMARK:L,QMARK_NO_DOT:z,STAR:I,START_ANCHOR:re}=m,K=A=>`(${c}(?:(?!${re}${A.dot?y:R}).)*?)`,g=t.dot?"":E,v=t.dot?L:z,k=t.bash===!0?K(t):I;t.capture&&(k=`(${k})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let l={input:e,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};e=Y.removePrefix(e,l),s=e.length;let H=[],w=[],B=[],o=i,u,P=()=>l.index===s-1,b=l.peek=(A=1)=>e[l.index+A],V=l.advance=()=>e[++l.index]||"",J=()=>e.slice(l.index+1),X=(A="",O=0)=>{l.consumed+=A,l.index+=O},Ee=A=>{l.output+=A.output!=null?A.output:A.value,X(A.value)},mr=()=>{let A=1;for(;b()==="!"&&(b(2)!=="("||b(3)==="?");)V(),l.start++,A++;return A%2===0?!1:(l.negated=!0,l.start++,!0)},be=A=>{l[A]++,B.push(A)},oe=A=>{l[A]--,B.pop()},C=A=>{if(o.type==="globstar"){let O=l.braces>0&&(A.type==="comma"||A.type==="brace"),d=A.extglob===!0||H.length&&(A.type==="pipe"||A.type==="paren");A.type!=="slash"&&A.type!=="paren"&&!O&&!d&&(l.output=l.output.slice(0,-o.output.length),o.type="star",o.value="*",o.output=k,l.output+=o.output)}if(H.length&&A.type!=="paren"&&(H[H.length-1].inner+=A.value),(A.value||A.output)&&Ee(A),o&&o.type==="text"&&A.type==="text"){o.value+=A.value,o.output=(o.output||"")+A.value;return}A.prev=o,a.push(A),o=A},xe=(A,O)=>{let d={...h[O],conditions:1,inner:""};d.prev=o,d.parens=l.parens,d.output=l.output;let x=(t.capture?"(":"")+d.open;be("parens"),C({type:A,value:O,output:l.output?"":_}),C({type:"paren",extglob:!0,value:V(),output:x}),H.push(d)},Rr=A=>{let O=A.close+(t.capture?")":""),d;if(A.type==="negate"){let x=k;A.inner&&A.inner.length>1&&A.inner.includes("/")&&(x=K(t)),(x!==k||P()||/^\)+$/.test(J()))&&(O=A.close=`)$))${x}`),A.inner.includes("*")&&(d=J())&&/^\.[^\\/.]+$/.test(d)&&(O=A.close=`)${d})${x})`),A.prev.type==="bos"&&(l.negatedExtglob=!0)}C({type:"paren",extglob:!0,value:u,output:O}),oe("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let A=!1,O=e.replace(In,(d,x,M,j,G,Ie)=>j==="\\"?(A=!0,d):j==="?"?x?x+j+(G?L.repeat(G.length):""):Ie===0?v+(G?L.repeat(G.length):""):L.repeat(M.length):j==="."?R.repeat(M.length):j==="*"?x?x+j+(G?k:""):k:x?d:`\\${d}`);return A===!0&&(t.unescape===!0?O=O.replace(/\\/g,""):O=O.replace(/\\+/g,d=>d.length%2===0?"\\\\":d?"\\":"")),O===e&&t.contains===!0?(l.output=e,l):(l.output=Y.wrapOutput(O,l,r),l)}for(;!P();){if(u=V(),u==="\0")continue;if(u==="\\"){let d=b();if(d==="/"&&t.bash!==!0||d==="."||d===";")continue;if(!d){u+="\\",C({type:"text",value:u});continue}let x=/^\\+/.exec(J()),M=0;if(x&&x[0].length>2&&(M=x[0].length,l.index+=M,M%2!==0&&(u+="\\")),t.unescape===!0?u=V():u+=V(),l.brackets===0){C({type:"text",value:u});continue}}if(l.brackets>0&&(u!=="]"||o.value==="["||o.value==="[^")){if(t.posix!==!1&&u===":"){let d=o.value.slice(1);if(d.includes("[")&&(o.posix=!0,d.includes(":"))){let x=o.value.lastIndexOf("["),M=o.value.slice(0,x),j=o.value.slice(x+2),G=On[j];if(G){o.value=M+G,l.backtrack=!0,V(),!i.output&&a.indexOf(o)===1&&(i.output=_);continue}}}(u==="["&&b()!==":"||u==="-"&&b()==="]")&&(u=`\\${u}`),u==="]"&&(o.value==="["||o.value==="[^")&&(u=`\\${u}`),t.posix===!0&&u==="!"&&o.value==="["&&(u="^"),o.value+=u,Ee({value:u});continue}if(l.quotes===1&&u!=='"'){u=Y.escapeRegex(u),o.value+=u,Ee({value:u});continue}if(u==='"'){l.quotes=l.quotes===1?0:1,t.keepQuotes===!0&&C({type:"text",value:u});continue}if(u==="("){be("parens"),C({type:"paren",value:u});continue}if(u===")"){if(l.parens===0&&t.strictBrackets===!0)throw new SyntaxError(de("opening","("));let d=H[H.length-1];if(d&&l.parens===d.parens+1){Rr(H.pop());continue}C({type:"paren",value:u,output:l.parens?")":"\\)"}),oe("parens");continue}if(u==="["){if(t.nobracket===!0||!J().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(de("closing","]"));u=`\\${u}`}else be("brackets");C({type:"bracket",value:u});continue}if(u==="]"){if(t.nobracket===!0||o&&o.type==="bracket"&&o.value.length===1){C({type:"text",value:u,output:`\\${u}`});continue}if(l.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(de("opening","["));C({type:"text",value:u,output:`\\${u}`});continue}oe("brackets");let d=o.value.slice(1);if(o.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(u=`/${u}`),o.value+=u,Ee({value:u}),t.literalBrackets===!1||Y.hasRegexChars(d))continue;let x=Y.escapeRegex(o.value);if(l.output=l.output.slice(0,-o.value.length),t.literalBrackets===!0){l.output+=x,o.value=x;continue}o.value=`(${c}${x}|${o.value})`,l.output+=o.value;continue}if(u==="{"&&t.nobrace!==!0){be("braces");let d={type:"brace",value:u,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};w.push(d),C(d);continue}if(u==="}"){let d=w[w.length-1];if(t.nobrace===!0||!d){C({type:"text",value:u,output:u});continue}let x=")";if(d.dots===!0){let M=a.slice(),j=[];for(let G=M.length-1;G>=0&&(a.pop(),M[G].type!=="brace");G--)M[G].type!=="dots"&&j.unshift(M[G].value);x=Bn(j,t),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let M=l.output.slice(0,d.outputIndex),j=l.tokens.slice(d.tokensIndex);d.value=d.output="\\{",u=x="\\}",l.output=M;for(let G of j)l.output+=G.output||G.value}C({type:"brace",value:u,output:x}),oe("braces"),w.pop();continue}if(u==="|"){H.length>0&&H[H.length-1].conditions++,C({type:"text",value:u});continue}if(u===","){let d=u,x=w[w.length-1];x&&B[B.length-1]==="braces"&&(x.comma=!0,d="|"),C({type:"comma",value:u,output:d});continue}if(u==="/"){if(o.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",a.pop(),o=i;continue}C({type:"slash",value:u,output:$});continue}if(u==="."){if(l.braces>0&&o.type==="dot"){o.value==="."&&(o.output=R);let d=w[w.length-1];o.type="dots",o.output+=u,o.value+=u,d.dots=!0;continue}if(l.braces+l.parens===0&&o.type!=="bos"&&o.type!=="slash"){C({type:"text",value:u,output:R});continue}C({type:"dot",value:u,output:R});continue}if(u==="?"){if(!(o&&o.value==="(")&&t.noextglob!==!0&&b()==="("&&b(2)!=="?"){xe("qmark",u);continue}if(o&&o.type==="paren"){let x=b(),M=u;if(x==="<"&&!Y.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(o.value==="("&&!/[!=<:]/.test(x)||x==="<"&&!/<([!=]|\w+>)/.test(J()))&&(M=`\\${u}`),C({type:"text",value:u,output:M});continue}if(t.dot!==!0&&(o.type==="slash"||o.type==="bos")){C({type:"qmark",value:u,output:z});continue}C({type:"qmark",value:u,output:L});continue}if(u==="!"){if(t.noextglob!==!0&&b()==="("&&(b(2)!=="?"||!/[!=<:]/.test(b(3)))){xe("negate",u);continue}if(t.nonegate!==!0&&l.index===0){mr();continue}}if(u==="+"){if(t.noextglob!==!0&&b()==="("&&b(2)!=="?"){xe("plus",u);continue}if(o&&o.value==="("||t.regex===!1){C({type:"plus",value:u,output:f});continue}if(o&&(o.type==="bracket"||o.type==="paren"||o.type==="brace")||l.parens>0){C({type:"plus",value:u});continue}C({type:"plus",value:f});continue}if(u==="@"){if(t.noextglob!==!0&&b()==="("&&b(2)!=="?"){C({type:"at",extglob:!0,value:u,output:""});continue}C({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);let d=Nn.exec(J());d&&(u+=d[0],l.index+=d[0].length),C({type:"text",value:u});continue}if(o&&(o.type==="globstar"||o.star===!0)){o.type="star",o.star=!0,o.value+=u,o.output=k,l.backtrack=!0,l.globstar=!0,X(u);continue}let A=J();if(t.noextglob!==!0&&/^\([^?]/.test(A)){xe("star",u);continue}if(o.type==="star"){if(t.noglobstar===!0){X(u);continue}let d=o.prev,x=d.prev,M=d.type==="slash"||d.type==="bos",j=x&&(x.type==="star"||x.type==="globstar");if(t.bash===!0&&(!M||A[0]&&A[0]!=="/")){C({type:"star",value:u,output:""});continue}let G=l.braces>0&&(d.type==="comma"||d.type==="brace"),Ie=H.length&&(d.type==="pipe"||d.type==="paren");if(!M&&d.type!=="paren"&&!G&&!Ie){C({type:"star",value:u,output:""});continue}for(;A.slice(0,3)==="/**";){let Ce=e[l.index+4];if(Ce&&Ce!=="/")break;A=A.slice(3),X("/**",3)}if(d.type==="bos"&&P()){o.type="globstar",o.value+=u,o.output=K(t),l.output=o.output,l.globstar=!0,X(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!j&&P()){l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type="globstar",o.output=K(t)+(t.strictSlashes?")":"|$)"),o.value+=u,l.globstar=!0,l.output+=d.output+o.output,X(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&A[0]==="/"){let Ce=A[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type="globstar",o.output=`${K(t)}${$}|${$}${Ce})`,o.value+=u,l.output+=d.output+o.output,l.globstar=!0,X(u+V()),C({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&A[0]==="/"){o.type="globstar",o.value+=u,o.output=`(?:^|${$}|${K(t)}${$})`,l.output=o.output,l.globstar=!0,X(u+V()),C({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-o.output.length),o.type="globstar",o.output=K(t),o.value+=u,l.output+=o.output,l.globstar=!0,X(u);continue}let O={type:"star",value:u,output:k};if(t.bash===!0){O.output=".*?",(o.type==="bos"||o.type==="slash")&&(O.output=g+O.output),C(O);continue}if(o&&(o.type==="bracket"||o.type==="paren")&&t.regex===!0){O.output=u,C(O);continue}(l.index===l.start||o.type==="slash"||o.type==="dot")&&(o.type==="dot"?(l.output+=S,o.output+=S):t.dot===!0?(l.output+=T,o.output+=T):(l.output+=g,o.output+=g),b()!=="*"&&(l.output+=_,o.output+=_)),C(O)}for(;l.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing","]"));l.output=Y.escapeLast(l.output,"["),oe("brackets")}for(;l.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing",")"));l.output=Y.escapeLast(l.output,"("),oe("parens")}for(;l.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing","}"));l.output=Y.escapeLast(l.output,"{"),oe("braces")}if(t.strictSlashes!==!0&&(o.type==="star"||o.type==="bracket")&&C({type:"maybe_slash",value:"",output:`${$}?`}),l.backtrack===!0){l.output="";for(let A of l.tokens)l.output+=A.output!=null?A.output:A.value,A.suffix&&(l.output+=A.suffix)}return l};Vt.fastpaths=(e,r)=>{let t={...r},n=typeof t.maxLength=="number"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=zt[e]||e;let i=Y.isWindows(r),{DOT_LITERAL:a,SLASH_LITERAL:c,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:h,NO_DOTS:R,NO_DOTS_SLASH:f,STAR:$,START_ANCHOR:_}=ke.globChars(i),y=t.dot?R:h,E=t.dot?f:h,S=t.capture?"":"?:",T={negated:!1,prefix:""},L=t.bash===!0?".*?":$;t.capture&&(L=`(${L})`);let z=g=>g.noglobstar===!0?L:`(${S}(?:(?!${_}${g.dot?m:a}).)*?)`,I=g=>{switch(g){case"*":return`${y}${p}${L}`;case".*":return`${a}${p}${L}`;case"*.*":return`${y}${L}${a}${p}${L}`;case"*/*":return`${y}${L}${c}${p}${E}${L}`;case"**":return y+z(t);case"**/*":return`(?:${y}${z(t)}${c})?${E}${p}${L}`;case"**/*.*":return`(?:${y}${z(t)}${c})?${E}${L}${a}${p}${L}`;case"**/.*":return`(?:${y}${z(t)}${c})?${a}${p}${L}`;default:{let v=/^(.*?)\.(\w+)$/.exec(g);if(!v)return;let k=I(v[1]);return k?k+a+v[2]:void 0}}},re=Y.removePrefix(e,T),K=I(re);return K&&t.strictSlashes!==!0&&(K+=`${c}?`),K};Jt.exports=Vt});var rr=q((ls,tr)=>{"use strict";var Pn=W("path"),Mn=Yt(),Ze=er(),Ye=Re(),Dn=me(),Un=e=>e&&typeof e=="object"&&!Array.isArray(e),D=(e,r,t=!1)=>{if(Array.isArray(e)){let h=e.map(f=>D(f,r,t));return f=>{for(let $ of h){let _=$(f);if(_)return _}return!1}}let n=Un(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let s=r||{},i=Ye.isWindows(r),a=n?D.compileRe(e,r):D.makeRe(e,r,!1,!0),c=a.state;delete a.state;let p=()=>!1;if(s.ignore){let h={...r,ignore:null,onMatch:null,onResult:null};p=D(s.ignore,h,t)}let m=(h,R=!1)=>{let{isMatch:f,match:$,output:_}=D.test(h,a,r,{glob:e,posix:i}),y={glob:e,state:c,regex:a,posix:i,input:h,output:_,match:$,isMatch:f};return typeof s.onResult=="function"&&s.onResult(y),f===!1?(y.isMatch=!1,R?y:!1):p(h)?(typeof s.onIgnore=="function"&&s.onIgnore(y),y.isMatch=!1,R?y:!1):(typeof s.onMatch=="function"&&s.onMatch(y),R?y:!0)};return t&&(m.state=c),m};D.test=(e,r,t,{glob:n,posix:s}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let i=t||{},a=i.format||(s?Ye.toPosixSlashes:null),c=e===n,p=c&&a?a(e):e;return c===!1&&(p=a?a(e):e,c=p===n),(c===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?c=D.matchBase(e,r,t,s):c=r.exec(p)),{isMatch:Boolean(c),match:c,output:p}};D.matchBase=(e,r,t,n=Ye.isWindows(t))=>(r instanceof RegExp?r:D.makeRe(r,t)).test(Pn.basename(e));D.isMatch=(e,r,t)=>D(r,t)(e);D.parse=(e,r)=>Array.isArray(e)?e.map(t=>D.parse(t,r)):Ze(e,{...r,fastpaths:!1});D.scan=(e,r)=>Mn(e,r);D.compileRe=(e,r,t=!1,n=!1)=>{if(t===!0)return e.output;let s=r||{},i=s.contains?"":"^",a=s.contains?"":"$",c=`${i}(?:${e.output})${a}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let p=D.toRegex(c,r);return n===!0&&(p.state=e),p};D.makeRe=(e,r={},t=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let s={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(s.output=Ze.fastpaths(e,r)),s.output||(s=Ze(e,r)),D.compileRe(s,r,t,n)};D.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};D.constants=Dn;tr.exports=D});var sr=q((fs,nr)=>{"use strict";nr.exports=rr()});var cr=q((ps,ur)=>{"use strict";var ir=W("util"),or=Pt(),ae=sr(),ze=Re(),ar=e=>e===""||e==="./",N=(e,r,t)=>{r=[].concat(r),e=[].concat(e);let n=new Set,s=new Set,i=new Set,a=0,c=h=>{i.add(h.output),t&&t.onResult&&t.onResult(h)};for(let h=0;h!n.has(h));if(t&&m.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${r.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?r.map(h=>h.replace(/\\/g,"")):r}return m};N.match=N;N.matcher=(e,r)=>ae(e,r);N.isMatch=(e,r,t)=>ae(r,t)(e);N.any=N.isMatch;N.not=(e,r,t={})=>{r=[].concat(r).map(String);let n=new Set,s=[],a=N(e,r,{...t,onResult:c=>{t.onResult&&t.onResult(c),s.push(c.output)}});for(let c of s)a.includes(c)||n.add(c);return[...n]};N.contains=(e,r,t)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ir.inspect(e)}"`);if(Array.isArray(r))return r.some(n=>N.contains(e,n,t));if(typeof r=="string"){if(ar(e)||ar(r))return!1;if(e.includes(r)||e.startsWith("./")&&e.slice(2).includes(r))return!0}return N.isMatch(e,r,{...t,contains:!0})};N.matchKeys=(e,r,t)=>{if(!ze.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=N(Object.keys(e),r,t),s={};for(let i of n)s[i]=e[i];return s};N.some=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(n.some(a=>i(a)))return!0}return!1};N.every=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(!n.every(a=>i(a)))return!1}return!0};N.all=(e,r,t)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ir.inspect(e)}"`);return[].concat(r).every(n=>ae(n,t)(e))};N.capture=(e,r,t)=>{let n=ze.isWindows(t),i=ae.makeRe(String(e),{...t,capture:!0}).exec(n?ze.toPosixSlashes(r):r);if(i)return i.slice(1).map(a=>a===void 0?"":a)};N.makeRe=(...e)=>ae.makeRe(...e);N.scan=(...e)=>ae.scan(...e);N.parse=(e,r)=>{let t=[];for(let n of[].concat(e||[]))for(let s of or(String(n),r))t.push(ae.parse(s,r));return t};N.braces=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");return r&&r.nobrace===!0||!/\{.*\}/.test(e)?[e]:or(e,r)};N.braceExpand=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");return N.braces(e,{...r,expand:!0})};ur.exports=N});var fr=q((hs,lr)=>{"use strict";lr.exports=(e,...r)=>new Promise(t=>{t(e(...r))})});var hr=q((ds,Ve)=>{"use strict";var Gn=fr(),pr=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let r=[],t=0,n=()=>{t--,r.length>0&&r.shift()()},s=(c,p,...m)=>{t++;let h=Gn(c,...m);p(h),h.then(n,n)},i=(c,p,...m)=>{tnew Promise(m=>i(c,m,...p));return Object.defineProperties(a,{activeCount:{get:()=>t},pendingCount:{get:()=>r.length}}),a};Ve.exports=pr;Ve.exports.default=pr});var jn={};Cr(jn,{default:()=>Wn});var Se=W("@yarnpkg/cli"),ne=W("@yarnpkg/core"),et=W("@yarnpkg/core"),ue=W("clipanion"),ce=class extends Se.BaseCommand{constructor(){super(...arguments);this.json=ue.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ue.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ue.Option.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ue.Option.Rest()}async execute(){let t=await ne.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ne.Project.find(t,this.context.cwd),i=await ne.Cache.find(t);await n.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(n.workspaces);else if(this.workspaces.length===0){if(!s)throw new Se.WorkspaceRequiredError(n.cwd,this.context.cwd);a=new Set([s])}else a=new Set(this.workspaces.map(p=>n.getWorkspaceByIdent(et.structUtils.parseIdent(p))));for(let p of a)for(let m of this.production?["dependencies"]:ne.Manifest.hardDependencies)for(let h of p.manifest.getForScope(m).values()){let R=n.tryWorkspaceByDescriptor(h);R!==null&&a.add(R)}for(let p of n.workspaces)a.has(p)?this.production&&p.manifest.devDependencies.clear():(p.manifest.installConfig=p.manifest.installConfig||{},p.manifest.installConfig.selfReferences=!1,p.manifest.dependencies.clear(),p.manifest.devDependencies.clear(),p.manifest.peerDependencies.clear(),p.manifest.scripts.clear());return(await ne.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await n.install({cache:i,report:p,persistProject:!1})})).exitCode()}};ce.paths=[["workspaces","focus"]],ce.usage=ue.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});var Ne=W("@yarnpkg/cli"),ge=W("@yarnpkg/core"),_e=W("@yarnpkg/core"),F=W("@yarnpkg/core"),gr=W("@yarnpkg/plugin-git"),U=W("clipanion"),Oe=Be(cr()),Ar=Be(hr()),te=Be(W("typanion")),pe=class extends Ne.BaseCommand{constructor(){super(...arguments);this.recursive=U.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=U.Option.Array("--from",[],{description:"An array of glob pattern idents from which to base any recursion"});this.all=U.Option.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=U.Option.Boolean("-v,--verbose",!1,{description:"Prefix each output line with the name of the originating workspace"});this.parallel=U.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=U.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=U.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:te.isOneOf([te.isEnum(["unlimited"]),te.applyCascade(te.isNumber(),[te.isInteger(),te.isAtLeast(1)])])});this.topological=U.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=U.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=U.Option.Array("--include",[],{description:"An array of glob pattern idents; only matching workspaces will be traversed"});this.exclude=U.Option.Array("--exclude",[],{description:"An array of glob pattern idents; matching workspaces won't be traversed"});this.publicOnly=U.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=U.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=U.Option.String();this.args=U.Option.Proxy()}async execute(){let t=await ge.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ge.Project.find(t,this.context.cwd);if(!this.all&&!s)throw new Ne.WorkspaceRequiredError(n.cwd,this.context.cwd);await n.restoreInstallState();let i=this.cli.process([this.commandName,...this.args]),a=i.path.length===1&&i.path[0]==="run"&&typeof i.scriptName<"u"?i.scriptName:null;if(i.path.length===0)throw new U.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let c=this.all?n.topLevelWorkspace:s,p=this.since?Array.from(await gr.gitUtils.fetchChangedWorkspaces({ref:this.since,project:n})):[c,...this.from.length>0?c.getRecursiveWorkspaceChildren():[]],m=g=>Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.from),h=this.from.length>0?p.filter(m):p,R=new Set([...h,...h.map(g=>[...this.recursive?this.since?g.getRecursiveWorkspaceDependents():g.getRecursiveWorkspaceDependencies():g.getRecursiveWorkspaceChildren()]).flat()]),f=[],$=!1;if(a!=null&&a.includes(":")){for(let g of n.workspaces)if(g.manifest.scripts.has(a)&&($=!$,$===!1))break}for(let g of R)a&&!g.manifest.scripts.has(a)&&!$&&!(await ge.scriptUtils.getWorkspaceAccessibleBinaries(g)).has(a)||a===process.env.npm_lifecycle_event&&g.cwd===s.cwd||this.include.length>0&&!Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.include)||this.exclude.length>0&&Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.exclude)||this.publicOnly&&g.manifest.private===!0||f.push(g);let _=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(F.nodeUtils.availableParallelism()/2):1,y=_===1?!1:this.parallel,E=y?this.interlaced:!0,S=(0,Ar.default)(_),T=new Map,L=new Set,z=0,I=null,re=!1,K=await _e.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async g=>{let v=async(k,{commandIndex:l})=>{if(re)return-1;!y&&this.verbose&&l>1&&g.reportSeparator();let H=qn(k,{configuration:t,verbose:this.verbose,commandIndex:l}),[w,B]=dr(g,{prefix:H,interlaced:E}),[o,u]=dr(g,{prefix:H,interlaced:E});try{this.verbose&&g.reportInfo(null,`${H} Process started`);let P=Date.now(),b=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:w,stderr:o})||0;w.end(),o.end(),await B,await u;let V=Date.now();if(this.verbose){let J=t.get("enableTimers")?`, completed in ${F.formatUtils.pretty(t,V-P,F.formatUtils.Type.DURATION)}`:"";g.reportInfo(null,`${H} Process exited (exit code ${b})${J}`)}return b===130&&(re=!0,I=b),b}catch(P){throw w.end(),o.end(),await B,await u,P}};for(let k of f)T.set(k.anchoredLocator.locatorHash,k);for(;T.size>0&&!g.hasErrors();){let k=[];for(let[w,B]of T){if(L.has(B.anchoredDescriptor.descriptorHash))continue;let o=!0;if(this.topological||this.topologicalDev){let u=this.topologicalDev?new Map([...B.manifest.dependencies,...B.manifest.devDependencies]):B.manifest.dependencies;for(let P of u.values()){let b=n.tryWorkspaceByDescriptor(P);if(o=b===null||!T.has(b.anchoredLocator.locatorHash),!o)break}}if(!!o&&(L.add(B.anchoredDescriptor.descriptorHash),k.push(S(async()=>{let u=await v(B,{commandIndex:++z});return T.delete(w),L.delete(B.anchoredDescriptor.descriptorHash),u})),!y))break}if(k.length===0){let w=Array.from(T.values()).map(B=>F.structUtils.prettyLocator(t,B.anchoredLocator)).join(", ");g.reportError(_e.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${w})`);return}let H=(await Promise.all(k)).find(w=>w!==0);I===null&&(I=typeof H<"u"?1:I),(this.topological||this.topologicalDev)&&typeof H<"u"&&g.reportError(_e.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return I!==null?I:K.exitCode()}};pe.paths=[["workspaces","foreach"]],pe.usage=U.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});function dr(e,{prefix:r,interlaced:t}){let n=e.createStreamReporter(r),s=new F.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on("finish",()=>{n.end()});let i=new Promise(c=>{n.on("finish",()=>{c(s.active)})});if(t)return[s,i];let a=new F.miscUtils.BufferStream;return a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()}),[a,i]}function qn(e,{configuration:r,commandIndex:t,verbose:n}){if(!n)return null;let i=`[${F.structUtils.stringifyIdent(e.locator)}]:`,a=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],c=a[t%a.length];return F.formatUtils.pretty(r,i,c)}var Kn={commands:[ce,pe]},Wn=Kn;return wr(jn);})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +return plugin; +} +}; diff --git a/.yarn/releases/yarn-3.4.1.cjs b/.yarn/releases/yarn-3.4.1.cjs new file mode 100755 index 0000000000..2bdb752d86 --- /dev/null +++ b/.yarn/releases/yarn-3.4.1.cjs @@ -0,0 +1,873 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Mue=Object.create;var Wb=Object.defineProperty;var Kue=Object.getOwnPropertyDescriptor;var Uue=Object.getOwnPropertyNames;var Hue=Object.getPrototypeOf,Gue=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Yue=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)Wb(r,t,{get:e[t],enumerable:!0})},jue=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Uue(e))!Gue.call(r,n)&&n!==t&&Wb(r,n,{get:()=>e[n],enumerable:!(i=Kue(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Mue(Hue(r)):{},jue(e||!r||!r.__esModule?Wb(t,"default",{value:r,enumerable:!0}):t,r));var _1=w((O7e,X1)=>{X1.exports=V1;V1.sync=uge;var W1=J("fs");function cge(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{tK.exports=$1;$1.sync=gge;var Z1=J("fs");function $1(r,e,t){Z1.stat(r,function(i,n){t(i,i?!1:eK(n,e))})}function gge(r,e){return eK(Z1.statSync(r),e)}function eK(r,e){return r.isFile()&&fge(r,e)}function fge(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var nK=w((U7e,iK)=>{var K7e=J("fs"),_E;process.platform==="win32"||global.TESTING_WINDOWS?_E=_1():_E=rK();iK.exports=uS;uS.sync=hge;function uS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){uS(r,e||{},function(s,o){s?n(s):i(o)})})}_E(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function hge(r,e){try{return _E.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var uK=w((H7e,cK)=>{var Ig=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",sK=J("path"),pge=Ig?";":":",oK=nK(),aK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),AK=(r,e)=>{let t=e.colon||pge,i=r.match(/\//)||Ig&&r.match(/\\/)?[""]:[...Ig?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Ig?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Ig?n.split(t):[""];return Ig&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},lK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=AK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(aK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=sK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];oK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},dge=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=AK(r,e),s=[];for(let o=0;o{"use strict";var gK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};gS.exports=gK;gS.exports.default=gK});var CK=w((Y7e,dK)=>{"use strict";var hK=J("path"),Cge=uK(),mge=fK();function pK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=Cge.sync(r.command,{path:t[mge({env:t})],pathExt:e?hK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=hK.resolve(n?r.options.cwd:"",o)),o}function Ege(r){return pK(r)||pK(r,!0)}dK.exports=Ege});var mK=w((j7e,hS)=>{"use strict";var fS=/([()\][%!^"`<>&|;, *?])/g;function Ige(r){return r=r.replace(fS,"^$1"),r}function yge(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(fS,"^$1"),e&&(r=r.replace(fS,"^$1")),r}hS.exports.command=Ige;hS.exports.argument=yge});var IK=w((q7e,EK)=>{"use strict";EK.exports=/^#!(.*)/});var wK=w((J7e,yK)=>{"use strict";var wge=IK();yK.exports=(r="")=>{let e=r.match(wge);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var QK=w((W7e,BK)=>{"use strict";var pS=J("fs"),Bge=wK();function Qge(r){let t=Buffer.alloc(150),i;try{i=pS.openSync(r,"r"),pS.readSync(i,t,0,150,0),pS.closeSync(i)}catch{}return Bge(t.toString())}BK.exports=Qge});var xK=w((z7e,vK)=>{"use strict";var bge=J("path"),bK=CK(),SK=mK(),Sge=QK(),vge=process.platform==="win32",xge=/\.(?:com|exe)$/i,Pge=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Dge(r){r.file=bK(r);let e=r.file&&Sge(r.file);return e?(r.args.unshift(r.file),r.command=e,bK(r)):r.file}function kge(r){if(!vge)return r;let e=Dge(r),t=!xge.test(e);if(r.options.forceShell||t){let i=Pge.test(e);r.command=bge.normalize(r.command),r.command=SK.command(r.command),r.args=r.args.map(s=>SK.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function Rge(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:kge(i)}vK.exports=Rge});var kK=w((V7e,DK)=>{"use strict";var dS=process.platform==="win32";function CS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Fge(r,e){if(!dS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=PK(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function PK(r,e){return dS&&r===1&&!e.file?CS(e.original,"spawn"):null}function Nge(r,e){return dS&&r===1&&!e.file?CS(e.original,"spawnSync"):null}DK.exports={hookChildProcess:Fge,verifyENOENT:PK,verifyENOENTSync:Nge,notFoundError:CS}});var IS=w((X7e,yg)=>{"use strict";var RK=J("child_process"),mS=xK(),ES=kK();function FK(r,e,t){let i=mS(r,e,t),n=RK.spawn(i.command,i.args,i.options);return ES.hookChildProcess(n,i),n}function Lge(r,e,t){let i=mS(r,e,t),n=RK.spawnSync(i.command,i.args,i.options);return n.error=n.error||ES.verifyENOENTSync(n.status,i),n}yg.exports=FK;yg.exports.spawn=FK;yg.exports.sync=Lge;yg.exports._parse=mS;yg.exports._enoent=ES});var LK=w((_7e,NK)=>{"use strict";function Tge(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ml(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ml)}Tge(Ml,Error);Ml.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",tt=me(">&",!1),Pt=">",It=me(">",!1),Or="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Ls=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ei="$'",_n=me("$'",!1),oa="'",aA=me("'",!1),eg=function(m){return[{type:"text",text:m}]},Zn='""',AA=me('""',!1),aa=function(){return{type:"text",text:""}},up='"',lA=me('"',!1),cA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},wl=function(m){return{type:"shell",shell:m,quoted:!0}},tg=function(m){return{type:"variable",...m,quoted:!0}},po=function(m){return{type:"text",text:m}},rg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},gp=function(m){return{type:"shell",shell:m,quoted:!1}},fp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,Co=Je(["'"],!0,!1),Dn=function(m){return m.join("")},ig=/^[^$"]/,Qt=Je(["$",'"'],!0,!1),Bl=`\\ +`,kn=me(`\\ +`,!1),$n=function(){return""},es="\\",gt=me("\\",!1),mo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),an=function(m){return m},S="\\a",Tt=me("\\a",!1),ng=function(){return"a"},Ql="\\b",hp=me("\\b",!1),pp=function(){return"\b"},dp=/^[Ee]/,Cp=Je(["E","e"],!1,!1),mp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),uA=function(){return"\f"},ji="\\n",bl=me("\\n",!1),Xe=function(){return` +`},Aa="\\r",sg=me("\\r",!1),bE=function(){return"\r"},Ep="\\t",SE=me("\\t",!1),ar=function(){return" "},Rn="\\v",Sl=me("\\v",!1),Ip=function(){return"\v"},Ts=/^[\\'"?]/,la=Je(["\\","'",'"',"?"],!1,!1),An=function(m){return String.fromCharCode(parseInt(m,16))},Te="\\x",og=me("\\x",!1),vl="\\u",Os=me("\\u",!1),xl="\\U",gA=me("\\U",!1),ag=function(m){return String.fromCodePoint(parseInt(m,16))},Ag=/^[0-7]/,ca=Je([["0","7"]],!1,!1),ua=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),Eo=nt(),fA="-",Pl=me("-",!1),Ms="+",Dl=me("+",!1),vE=".",yp=me(".",!1),lg=function(m,b,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(b.join("")+"."+N.join(""))}},wp=function(m,b){return{type:"number",value:(m==="-"?-1:1)*parseInt(b.join(""))}},xE=function(m){return{type:"variable",...m}},kl=function(m){return{type:"variable",name:m}},PE=function(m){return m},cg="*",hA=me("*",!1),Rr="/",DE=me("/",!1),Ks=function(m,b,N){return{type:b==="*"?"multiplication":"division",right:N}},Us=function(m,b){return b.reduce((N,U)=>({left:N,...U}),m)},ug=function(m,b,N){return{type:b==="+"?"addition":"subtraction",right:N}},pA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Fn=me("${",!1),Db=":-",$M=me(":-",!1),e1=function(m,b){return{name:m,defaultValue:b}},kb=":-}",t1=me(":-}",!1),r1=function(m){return{name:m,defaultValue:[]}},Rb=":+",i1=me(":+",!1),n1=function(m,b){return{name:m,alternativeValue:b}},Fb=":+}",s1=me(":+}",!1),o1=function(m){return{name:m,alternativeValue:[]}},Nb=function(m){return{name:m}},a1="$",A1=me("$",!1),l1=function(m){return e.isGlobPattern(m)},c1=function(m){return m},Lb=/^[a-zA-Z0-9_]/,Tb=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ob=function(){return T()},Mb=/^[$@*?#a-zA-Z0-9_\-]/,Kb=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),u1=/^[(){}<>$|&; \t"']/,gg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Ub=/^[<>&; \t"']/,Hb=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),kE=/^[ \t]/,RE=Je([" "," "],!1,!1),Q=0,Me=0,dA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function T(){return r.substring(Me,Q)}function _(){return Et(Me,Q)}function te(m,b){throw b=b!==void 0?b:Et(Me,Q),ki([lt(m)],r.substring(Me,Q),b)}function Be(m,b){throw b=b!==void 0?b:Et(Me,Q),Nn(m,b)}function me(m,b){return{type:"literal",text:m,ignoreCase:b}}function Je(m,b,N){return{type:"class",parts:m,inverted:b,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var b=dA[m],N;if(b)return b;for(N=m-1;!dA[N];)N--;for(b=dA[N],b={line:b.line,column:b.column};Nd&&(d=Q,E=[]),E.push(m))}function Nn(m,b){return new Ml(m,null,null,b)}function ki(m,b,N){return new Ml(Ml.buildMessage(m,b),m,b,N)}function CA(){var m,b;return m=Q,b=Mr(),b===t&&(b=null),b!==t&&(Me=m,b=s(b)),m=b,m}function Mr(){var m,b,N,U,ce;if(m=Q,b=Kr(),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=ga(),U!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Me=m,b=o(b,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;if(m===t)if(m=Q,b=Kr(),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=ga(),U===t&&(U=null),U!==t?(Me=m,b=a(b,U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function ts(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Mr(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=l(N),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function ga(){var m;return r.charCodeAt(Q)===59?(m=c,Q++):(m=t,I===0&&Qe(u)),m===t&&(r.charCodeAt(Q)===38?(m=g,Q++):(m=t,I===0&&Qe(f))),m}function Kr(){var m,b,N;return m=Q,b=g1(),b!==t?(N=yue(),N===t&&(N=null),N!==t?(Me=m,b=h(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function yue(){var m,b,N,U,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=wue(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=p(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function wue(){var m;return r.substr(Q,2)===C?(m=C,Q+=2):(m=t,I===0&&Qe(y)),m===t&&(r.substr(Q,2)===B?(m=B,Q+=2):(m=t,I===0&&Qe(v))),m}function g1(){var m,b,N;return m=Q,b=bue(),b!==t?(N=Bue(),N===t&&(N=null),N!==t?(Me=m,b=D(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Bue(){var m,b,N,U,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Que(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=g1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=L(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function Que(){var m;return r.substr(Q,2)===H?(m=H,Q+=2):(m=t,I===0&&Qe(j)),m===t&&(r.charCodeAt(Q)===124?(m=$,Q++):(m=t,I===0&&Qe(V))),m}function FE(){var m,b,N,U,ce,Se;if(m=Q,b=Q1(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(Z)),N!==t)if(U=p1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Me=m,b=A(b,U),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;else Q=m,m=t;if(m===t)if(m=Q,b=Q1(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(Z)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=ae(b),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function bue(){var m,b,N,U,ce,Se,ht,Bt,Jr,hi,rs;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===40?(N=ge,Q++):(N=t,I===0&&Qe(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===41?(ht=O,Q++):(ht=t,I===0&&Qe(F)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Bp();hi!==t;)Jr.push(hi),hi=Bp();if(Jr!==t){for(hi=[],rs=He();rs!==t;)hi.push(rs),rs=He();hi!==t?(Me=m,b=ue(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===123?(N=he,Q++):(N=t,I===0&&Qe(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===125?(ht=Fe,Q++):(ht=t,I===0&&Qe(Ne)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Bp();hi!==t;)Jr.push(hi),hi=Bp();if(Jr!==t){for(hi=[],rs=He();rs!==t;)hi.push(rs),rs=He();hi!==t?(Me=m,b=oe(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){for(N=[],U=FE();U!==t;)N.push(U),U=FE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=h1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=h1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=le(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],U=FE(),U!==t)for(;U!==t;)N.push(U),U=FE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=we(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}}}return m}function f1(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],U=NE(),U!==t)for(;U!==t;)N.push(U),U=NE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=fe(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t;return m}function h1(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t?(N=Bp(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();b!==t?(N=NE(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t)}return m}function Bp(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(qe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(ne)),N===t&&(N=null),N!==t?(U=Sue(),U!==t?(ce=NE(),ce!==t?(Me=m,b=Y(N,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function Sue(){var m;return r.substr(Q,2)===pe?(m=pe,Q+=2):(m=t,I===0&&Qe(ie)),m===t&&(r.substr(Q,2)===de?(m=de,Q+=2):(m=t,I===0&&Qe(tt)),m===t&&(r.charCodeAt(Q)===62?(m=Pt,Q++):(m=t,I===0&&Qe(It)),m===t&&(r.substr(Q,3)===Or?(m=Or,Q+=3):(m=t,I===0&&Qe(ii)),m===t&&(r.substr(Q,2)===gi?(m=gi,Q+=2):(m=t,I===0&&Qe(hr)),m===t&&(r.charCodeAt(Q)===60?(m=fi,Q++):(m=t,I===0&&Qe(ni))))))),m}function NE(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(N=p1(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function p1(){var m,b,N;if(m=Q,b=[],N=d1(),N!==t)for(;N!==t;)b.push(N),N=d1();else b=t;return b!==t&&(Me=m,b=Ls(b)),m=b,m}function d1(){var m,b;return m=Q,b=vue(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=xue(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=Pue(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=Due(),b!==t&&(Me=m,b=pr(b)),m=b))),m}function vue(){var m,b,N,U;return m=Q,r.substr(Q,2)===Ei?(b=Ei,Q+=2):(b=t,I===0&&Qe(_n)),b!==t?(N=Fue(),N!==t?(r.charCodeAt(Q)===39?(U=oa,Q++):(U=t,I===0&&Qe(aA)),U!==t?(Me=m,b=eg(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function xue(){var m,b,N,U;return m=Q,r.charCodeAt(Q)===39?(b=oa,Q++):(b=t,I===0&&Qe(aA)),b!==t?(N=kue(),N!==t?(r.charCodeAt(Q)===39?(U=oa,Q++):(U=t,I===0&&Qe(aA)),U!==t?(Me=m,b=eg(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function Pue(){var m,b,N,U;if(m=Q,r.substr(Q,2)===Zn?(b=Zn,Q+=2):(b=t,I===0&&Qe(AA)),b!==t&&(Me=m,b=aa()),m=b,m===t)if(m=Q,r.charCodeAt(Q)===34?(b=up,Q++):(b=t,I===0&&Qe(lA)),b!==t){for(N=[],U=C1();U!==t;)N.push(U),U=C1();N!==t?(r.charCodeAt(Q)===34?(U=up,Q++):(U=t,I===0&&Qe(lA)),U!==t?(Me=m,b=cA(N),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function Due(){var m,b,N;if(m=Q,b=[],N=m1(),N!==t)for(;N!==t;)b.push(N),N=m1();else b=t;return b!==t&&(Me=m,b=cA(b)),m=b,m}function C1(){var m,b;return m=Q,b=w1(),b!==t&&(Me=m,b=wr(b)),m=b,m===t&&(m=Q,b=B1(),b!==t&&(Me=m,b=wl(b)),m=b,m===t&&(m=Q,b=qb(),b!==t&&(Me=m,b=tg(b)),m=b,m===t&&(m=Q,b=Rue(),b!==t&&(Me=m,b=po(b)),m=b))),m}function m1(){var m,b;return m=Q,b=w1(),b!==t&&(Me=m,b=rg(b)),m=b,m===t&&(m=Q,b=B1(),b!==t&&(Me=m,b=gp(b)),m=b,m===t&&(m=Q,b=qb(),b!==t&&(Me=m,b=fp(b)),m=b,m===t&&(m=Q,b=Tue(),b!==t&&(Me=m,b=vr(b)),m=b,m===t&&(m=Q,b=Lue(),b!==t&&(Me=m,b=po(b)),m=b)))),m}function kue(){var m,b,N;for(m=Q,b=[],se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co));N!==t;)b.push(N),se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co));return b!==t&&(Me=m,b=Dn(b)),m=b,m}function Rue(){var m,b,N;if(m=Q,b=[],N=E1(),N===t&&(ig.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt))),N!==t)for(;N!==t;)b.push(N),N=E1(),N===t&&(ig.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt)));else b=t;return b!==t&&(Me=m,b=Dn(b)),m=b,m}function E1(){var m,b,N;return m=Q,r.substr(Q,2)===Bl?(b=Bl,Q+=2):(b=t,I===0&&Qe(kn)),b!==t&&(Me=m,b=$n()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(mo.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(At)),N!==t?(Me=m,b=an(N),m=b):(Q=m,m=t)):(Q=m,m=t)),m}function Fue(){var m,b,N;for(m=Q,b=[],N=I1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co)));N!==t;)b.push(N),N=I1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co)));return b!==t&&(Me=m,b=Dn(b)),m=b,m}function I1(){var m,b,N;return m=Q,r.substr(Q,2)===S?(b=S,Q+=2):(b=t,I===0&&Qe(Tt)),b!==t&&(Me=m,b=ng()),m=b,m===t&&(m=Q,r.substr(Q,2)===Ql?(b=Ql,Q+=2):(b=t,I===0&&Qe(hp)),b!==t&&(Me=m,b=pp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(dp.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Cp)),N!==t?(Me=m,b=mp(),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===G?(b=G,Q+=2):(b=t,I===0&&Qe(yt)),b!==t&&(Me=m,b=uA()),m=b,m===t&&(m=Q,r.substr(Q,2)===ji?(b=ji,Q+=2):(b=t,I===0&&Qe(bl)),b!==t&&(Me=m,b=Xe()),m=b,m===t&&(m=Q,r.substr(Q,2)===Aa?(b=Aa,Q+=2):(b=t,I===0&&Qe(sg)),b!==t&&(Me=m,b=bE()),m=b,m===t&&(m=Q,r.substr(Q,2)===Ep?(b=Ep,Q+=2):(b=t,I===0&&Qe(SE)),b!==t&&(Me=m,b=ar()),m=b,m===t&&(m=Q,r.substr(Q,2)===Rn?(b=Rn,Q+=2):(b=t,I===0&&Qe(Sl)),b!==t&&(Me=m,b=Ip()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(Ts.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(la)),N!==t?(Me=m,b=an(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Nue()))))))))),m}function Nue(){var m,b,N,U,ce,Se,ht,Bt,Jr,hi,rs,Jb;return m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(N=Gb(),N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Te?(b=Te,Q+=2):(b=t,I===0&&Qe(og)),b!==t?(N=Q,U=Q,ce=Gb(),ce!==t?(Se=Ln(),Se!==t?(ce=[ce,Se],U=ce):(Q=U,U=t)):(Q=U,U=t),U===t&&(U=Gb()),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===vl?(b=vl,Q+=2):(b=t,I===0&&Qe(Os)),b!==t?(N=Q,U=Q,ce=Ln(),ce!==t?(Se=Ln(),Se!==t?(ht=Ln(),ht!==t?(Bt=Ln(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===xl?(b=xl,Q+=2):(b=t,I===0&&Qe(gA)),b!==t?(N=Q,U=Q,ce=Ln(),ce!==t?(Se=Ln(),Se!==t?(ht=Ln(),ht!==t?(Bt=Ln(),Bt!==t?(Jr=Ln(),Jr!==t?(hi=Ln(),hi!==t?(rs=Ln(),rs!==t?(Jb=Ln(),Jb!==t?(ce=[ce,Se,ht,Bt,Jr,hi,rs,Jb],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=ag(N),m=b):(Q=m,m=t)):(Q=m,m=t)))),m}function Gb(){var m;return Ag.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(ca)),m}function Ln(){var m;return ua.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(rt)),m}function Lue(){var m,b,N,U,ce;if(m=Q,b=[],N=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Qe(gt)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=b1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t)),N!==t)for(;N!==t;)b.push(N),N=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Qe(gt)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=b1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t));else b=t;return b!==t&&(Me=m,b=Dn(b)),m=b,m}function Yb(){var m,b,N,U,ce,Se;if(m=Q,r.charCodeAt(Q)===45?(b=fA,Q++):(b=t,I===0&&Qe(Pl)),b===t&&(r.charCodeAt(Q)===43?(b=Ms,Q++):(b=t,I===0&&Qe(Dl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne));else N=t;if(N!==t)if(r.charCodeAt(Q)===46?(U=vE,Q++):(U=t,I===0&&Qe(yp)),U!==t){if(ce=[],qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne));else ce=t;ce!==t?(Me=m,b=lg(b,N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;if(m===t){if(m=Q,r.charCodeAt(Q)===45?(b=fA,Q++):(b=t,I===0&&Qe(Pl)),b===t&&(r.charCodeAt(Q)===43?(b=Ms,Q++):(b=t,I===0&&Qe(Dl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne));else N=t;N!==t?(Me=m,b=wp(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;if(m===t&&(m=Q,b=qb(),b!==t&&(Me=m,b=xE(b)),m=b,m===t&&(m=Q,b=Rl(),b!==t&&(Me=m,b=kl(b)),m=b,m===t)))if(m=Q,r.charCodeAt(Q)===40?(b=ge,Q++):(b=t,I===0&&Qe(re)),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=y1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(Q)===41?(Se=O,Q++):(Se=t,I===0&&Qe(F)),Se!==t?(Me=m,b=PE(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t}return m}function jb(){var m,b,N,U,ce,Se,ht,Bt;if(m=Q,b=Yb(),b!==t){for(N=[],U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=cg,Q++):(Se=t,I===0&&Qe(hA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(DE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=Yb(),Bt!==t?(Me=U,ce=Ks(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=cg,Q++):(Se=t,I===0&&Qe(hA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(DE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=Yb(),Bt!==t?(Me=U,ce=Ks(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Me=m,b=Us(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function y1(){var m,b,N,U,ce,Se,ht,Bt;if(m=Q,b=jb(),b!==t){for(N=[],U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Ms,Q++):(Se=t,I===0&&Qe(Dl)),Se===t&&(r.charCodeAt(Q)===45?(Se=fA,Q++):(Se=t,I===0&&Qe(Pl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=jb(),Bt!==t?(Me=U,ce=ug(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Ms,Q++):(Se=t,I===0&&Qe(Dl)),Se===t&&(r.charCodeAt(Q)===45?(Se=fA,Q++):(Se=t,I===0&&Qe(Pl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=jb(),Bt!==t?(Me=U,ce=ug(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Me=m,b=Us(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function w1(){var m,b,N,U,ce,Se;if(m=Q,r.substr(Q,3)===pA?(b=pA,Q+=3):(b=t,I===0&&Qe(R)),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=y1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(Q,2)===q?(Se=q,Q+=2):(Se=t,I===0&&Qe(Ce)),Se!==t?(Me=m,b=Ke(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;return m}function B1(){var m,b,N,U;return m=Q,r.substr(Q,2)===Re?(b=Re,Q+=2):(b=t,I===0&&Qe(ze)),b!==t?(N=Mr(),N!==t?(r.charCodeAt(Q)===41?(U=O,Q++):(U=t,I===0&&Qe(F)),U!==t?(Me=m,b=dt(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function qb(){var m,b,N,U,ce,Se;return m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,2)===Db?(U=Db,Q+=2):(U=t,I===0&&Qe($M)),U!==t?(ce=f1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=e1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,3)===kb?(U=kb,Q+=3):(U=t,I===0&&Qe(t1)),U!==t?(Me=m,b=r1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,2)===Rb?(U=Rb,Q+=2):(U=t,I===0&&Qe(i1)),U!==t?(ce=f1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=n1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,3)===Fb?(U=Fb,Q+=3):(U=t,I===0&&Qe(s1)),U!==t?(Me=m,b=o1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.charCodeAt(Q)===125?(U=Fe,Q++):(U=t,I===0&&Qe(Ne)),U!==t?(Me=m,b=Nb(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.charCodeAt(Q)===36?(b=a1,Q++):(b=t,I===0&&Qe(A1)),b!==t?(N=Rl(),N!==t?(Me=m,b=Nb(N),m=b):(Q=m,m=t)):(Q=m,m=t)))))),m}function Tue(){var m,b,N;return m=Q,b=Oue(),b!==t?(Me=Q,N=l1(b),N?N=void 0:N=t,N!==t?(Me=m,b=c1(b),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Oue(){var m,b,N,U,ce;if(m=Q,b=[],N=Q,U=Q,I++,ce=S1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N!==t)for(;N!==t;)b.push(N),N=Q,U=Q,I++,ce=S1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t);else b=t;return b!==t&&(Me=m,b=Dn(b)),m=b,m}function Q1(){var m,b,N;if(m=Q,b=[],Lb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Tb)),N!==t)for(;N!==t;)b.push(N),Lb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Tb));else b=t;return b!==t&&(Me=m,b=Ob()),m=b,m}function Rl(){var m,b,N;if(m=Q,b=[],Mb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Kb)),N!==t)for(;N!==t;)b.push(N),Mb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Kb));else b=t;return b!==t&&(Me=m,b=Ob()),m=b,m}function b1(){var m;return u1.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(gg)),m}function S1(){var m;return Ub.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(Hb)),m}function He(){var m,b;if(m=[],kE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(RE)),b!==t)for(;b!==t;)m.push(b),kE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(RE));else m=t;return m}if(k=n(),k!==t&&Q===r.length)return k;throw k!==t&&Q{"use strict";function Mge(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ul(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ul)}Mge(Ul,Error);Ul.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new Ul(ne,null,null,Y)}function oe(ne,Y,pe){return new Ul(Ul.buildMessage(ne,Y),ne,Y,pe)}function le(){var ne,Y,pe,ie;return ne=v,Y=we(),Y!==t?(r.charCodeAt(v)===47?(pe=s,v++):(pe=t,$===0&&Fe(o)),pe!==t?(ie=we(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=we(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function we(){var ne,Y,pe,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(pe=c,v++):(pe=t,$===0&&Fe(u)),pe!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,pe,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(pe=Ae(),pe!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=Ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function Ae(){var ne,Y,pe;if(ne=v,Y=[],p.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(C)),pe!==t)for(;pe!==t;)Y.push(pe),p.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,pe;if(ne=v,Y=[],y.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(B)),pe!==t)for(;pe!==t;)Y.push(pe),y.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function UK(r){return typeof r>"u"||r===null}function Uge(r){return typeof r=="object"&&r!==null}function Hge(r){return Array.isArray(r)?r:UK(r)?[]:[r]}function Gge(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Op(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Op.prototype=Object.create(Error.prototype);Op.prototype.constructor=Op;Op.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};HK.exports=Op});var jK=w((pXe,YK)=>{"use strict";var GK=Gl();function SS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}SS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),GK.repeat(" ",e)+i+a+s+` +`+GK.repeat(" ",e+this.position-n+i.length)+"^"};SS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};YK.exports=SS});var si=w((dXe,JK)=>{"use strict";var qK=Qg(),qge=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jge=["scalar","sequence","mapping"];function Wge(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zge(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qge.indexOf(t)===-1)throw new qK('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wge(e.styleAliases||null),Jge.indexOf(this.kind)===-1)throw new qK('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}JK.exports=zge});var Yl=w((CXe,zK)=>{"use strict";var WK=Gl(),nI=Qg(),Vge=si();function vS(r,e,t){var i=[];return r.include.forEach(function(n){t=vS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xge(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var _ge=si();VK.exports=new _ge("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var ZK=w((EXe,_K)=>{"use strict";var Zge=si();_K.exports=new Zge("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var eU=w((IXe,$K)=>{"use strict";var $ge=si();$K.exports=new $ge("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var sI=w((yXe,tU)=>{"use strict";var efe=Yl();tU.exports=new efe({explicit:[XK(),ZK(),eU()]})});var iU=w((wXe,rU)=>{"use strict";var tfe=si();function rfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ife(){return null}function nfe(r){return r===null}rU.exports=new tfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:rfe,construct:ife,predicate:nfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var sU=w((BXe,nU)=>{"use strict";var sfe=si();function ofe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function afe(r){return r==="true"||r==="True"||r==="TRUE"}function Afe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}nU.exports=new sfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ofe,construct:afe,predicate:Afe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var aU=w((QXe,oU)=>{"use strict";var lfe=Gl(),cfe=si();function ufe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function gfe(r){return 48<=r&&r<=55}function ffe(r){return 48<=r&&r<=57}function hfe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var cU=w((bXe,lU)=>{"use strict";var AU=Gl(),Cfe=si(),mfe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Efe(r){return!(r===null||!mfe.test(r)||r[r.length-1]==="_")}function Ife(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yfe=/^[-+]?[0-9]+e/;function wfe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(AU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yfe.test(t)?t.replace("e",".e"):t}function Bfe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||AU.isNegativeZero(r))}lU.exports=new Cfe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Efe,construct:Ife,predicate:Bfe,represent:wfe,defaultStyle:"lowercase"})});var xS=w((SXe,uU)=>{"use strict";var Qfe=Yl();uU.exports=new Qfe({include:[sI()],implicit:[iU(),sU(),aU(),cU()]})});var PS=w((vXe,gU)=>{"use strict";var bfe=Yl();gU.exports=new bfe({include:[xS()]})});var dU=w((xXe,pU)=>{"use strict";var Sfe=si(),fU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),hU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vfe(r){return r===null?!1:fU.exec(r)!==null||hU.exec(r)!==null}function xfe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=fU.exec(r),e===null&&(e=hU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Pfe(r){return r.toISOString()}pU.exports=new Sfe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vfe,construct:xfe,instanceOf:Date,represent:Pfe})});var mU=w((PXe,CU)=>{"use strict";var Dfe=si();function kfe(r){return r==="<<"||r===null}CU.exports=new Dfe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:kfe})});var yU=w((DXe,IU)=>{"use strict";var jl;try{EU=J,jl=EU("buffer").Buffer}catch{}var EU,Rfe=si(),DS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Ffe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=DS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nfe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=DS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),jl?jl.from?jl.from(a):new jl(a):a}function Lfe(r){var e="",t=0,i,n,s=r.length,o=DS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Tfe(r){return jl&&jl.isBuffer(r)}IU.exports=new Rfe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Ffe,construct:Nfe,predicate:Tfe,represent:Lfe})});var BU=w((kXe,wU)=>{"use strict";var Ofe=si(),Mfe=Object.prototype.hasOwnProperty,Kfe=Object.prototype.toString;function Ufe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Gfe=si(),Yfe=Object.prototype.toString;function jfe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jfe=si(),Wfe=Object.prototype.hasOwnProperty;function zfe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Wfe.call(t,e)&&t[e]!==null)return!1;return!0}function Vfe(r){return r!==null?r:{}}SU.exports=new Jfe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zfe,construct:Vfe})});var Sg=w((NXe,xU)=>{"use strict";var Xfe=Yl();xU.exports=new Xfe({include:[PS()],implicit:[dU(),mU()],explicit:[yU(),BU(),bU(),vU()]})});var DU=w((LXe,PU)=>{"use strict";var _fe=si();function Zfe(){return!0}function $fe(){}function ehe(){return""}function the(r){return typeof r>"u"}PU.exports=new _fe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Zfe,construct:$fe,predicate:the,represent:ehe})});var RU=w((TXe,kU)=>{"use strict";var rhe=si();function ihe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function nhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function she(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ohe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}kU.exports=new rhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ihe,construct:nhe,predicate:ohe,represent:she})});var LU=w((OXe,NU)=>{"use strict";var oI;try{FU=J,oI=FU("esprima")}catch{typeof window<"u"&&(oI=window.esprima)}var FU,ahe=si();function Ahe(r){if(r===null)return!1;try{var e="("+r+")",t=oI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lhe(r){var e="("+r+")",t=oI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function che(r){return r.toString()}function uhe(r){return Object.prototype.toString.call(r)==="[object Function]"}NU.exports=new ahe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ahe,construct:lhe,predicate:uhe,represent:che})});var Mp=w((MXe,OU)=>{"use strict";var TU=Yl();OU.exports=TU.DEFAULT=new TU({include:[Sg()],explicit:[DU(),RU(),LU()]})});var r2=w((KXe,Kp)=>{"use strict";var da=Gl(),jU=Qg(),ghe=jK(),qU=Sg(),fhe=Mp(),wA=Object.prototype.hasOwnProperty,aI=1,JU=2,WU=3,AI=4,kS=1,hhe=2,MU=3,phe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dhe=/[\x85\u2028\u2029]/,Che=/[,\[\]\{\}]/,zU=/^(?:!|!!|![a-z\-]+!)$/i,VU=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function KU(r){return Object.prototype.toString.call(r)}function Bo(r){return r===10||r===13}function Jl(r){return r===9||r===32}function un(r){return r===9||r===32||r===10||r===13}function vg(r){return r===44||r===91||r===93||r===123||r===125}function mhe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Ehe(r){return r===120?2:r===117?4:r===85?8:0}function Ihe(r){return 48<=r&&r<=57?r-48:-1}function UU(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function yhe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var XU=new Array(256),_U=new Array(256);for(ql=0;ql<256;ql++)XU[ql]=UU(ql)?1:0,_U[ql]=UU(ql);var ql;function whe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fhe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function ZU(r,e){return new jU(e,new ghe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw ZU(r,e)}function lI(r,e){r.onWarning&&r.onWarning.call(null,ZU(r,e))}var HU={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&lI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],zU.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),wA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),VU.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function yA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=da.repeat(` +`,e-1))}function Bhe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),un(h)||vg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),un(n)||t&&vg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),un(n)||t&&vg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),un(i))break}else{if(r.position===r.lineStart&&cI(r)||t&&vg(h))break;if(Bo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(yA(r,s,o,!1),FS(r,r.line-l),s=o=r.position,a=!1),Jl(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return yA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function Qhe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(yA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else Bo(t)?(yA(r,i,n,!0),FS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&cI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function bhe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return yA(r,t,r.position,!0),r.position++,!0;if(a===92){if(yA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),Bo(a))zr(r,!1,e);else if(a<256&&XU[a])r.result+=_U[a],r.position++;else if((o=Ehe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mhe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=yhe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else Bo(a)?(yA(r,t,i,!0),FS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&cI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function She(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),un(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Pg(r,e,aI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Pg(r,e,aI,!1,!0),C=r.result),g?xg(r,s,f,p,h,C):c?s.push(xg(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function vhe(r,e){var t,i,n=kS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)kS===n?n=g===43?MU:hhe:ft(r,"repeat of a chomping mode identifier");else if((u=Ihe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(Jl(g)){do g=r.input.charCodeAt(++r.position);while(Jl(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!Bo(g)&&g!==0)}for(;g!==0;){for(RS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),Bo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Pg(r,e,AI,!0,n)&&(p?f=r.result:h=r.result),p||(xg(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rhe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!un(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;Jl(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!Bo(o));break}if(Bo(o))break;for(t=r.position;o!==0&&!un(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&RS(r),wA.call(HU,i)?HU[i](r,i,n):lI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Pg(r,r.lineIndent-1,AI,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&dhe.test(r.input.slice(e,r.position))&&lI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&cI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=$U(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),e2(r,e,da.extend({schema:qU},t))}function Nhe(r,e){return t2(r,da.extend({schema:qU},e))}Kp.exports.loadAll=e2;Kp.exports.load=t2;Kp.exports.safeLoadAll=Fhe;Kp.exports.safeLoad=Nhe});var b2=w((UXe,OS)=>{"use strict";var Hp=Gl(),Gp=Qg(),Lhe=Mp(),The=Sg(),c2=Object.prototype.toString,u2=Object.prototype.hasOwnProperty,Ohe=9,Up=10,Mhe=13,Khe=32,Uhe=33,Hhe=34,g2=35,Ghe=37,Yhe=38,jhe=39,qhe=42,f2=44,Jhe=45,h2=58,Whe=61,zhe=62,Vhe=63,Xhe=64,p2=91,d2=93,_he=96,C2=123,Zhe=124,m2=125,Fi={};Fi[0]="\\0";Fi[7]="\\a";Fi[8]="\\b";Fi[9]="\\t";Fi[10]="\\n";Fi[11]="\\v";Fi[12]="\\f";Fi[13]="\\r";Fi[27]="\\e";Fi[34]='\\"';Fi[92]="\\\\";Fi[133]="\\N";Fi[160]="\\_";Fi[8232]="\\L";Fi[8233]="\\P";var $he=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function epe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&s2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Dg(o))return uI;a=s>0?r.charCodeAt(s-1):null,f=f&&s2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?I2:y2:t>9&&E2(r)?uI:c?B2:w2}function ope(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$he.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rpe(r,l)}switch(spe(e,o,r.indent,s,a)){case I2:return e;case y2:return"'"+e.replace(/'/g,"''")+"'";case w2:return"|"+o2(e,r.indent)+a2(n2(e,n));case B2:return">"+o2(e,r.indent)+a2(n2(ape(e,s),n));case uI:return'"'+Ape(e,s)+'"';default:throw new Gp("impossible error: invalid scalar style")}}()}function o2(r,e){var t=E2(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function a2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function ape(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,A2(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+A2(l,e),n=s}return i}function A2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ape(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=i2((t-55296)*1024+i-56320+65536),s++;continue}n=Fi[t],e+=!n&&Dg(t)?r[s]:n||i2(t)}return e}function lpe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Wl(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gpe(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new Gp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&Up===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=NS(r,e)),Wl(r,e+1,u,!0,g)&&(r.dump&&Up===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function l2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Wl(r,e,t,i,n,s){r.tag=null,r.dump=t,l2(r,t,!1)||l2(r,t,!0);var o=c2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gpe(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(upe(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cpe(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lpe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ope(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new Gp("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fpe(r,e){var t=[],i=[],n,s;for(LS(r,t,i),n=0,s=i.length;n{"use strict";var gI=r2(),S2=b2();function fI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=Yl();Fr.exports.FAILSAFE_SCHEMA=sI();Fr.exports.JSON_SCHEMA=xS();Fr.exports.CORE_SCHEMA=PS();Fr.exports.DEFAULT_SAFE_SCHEMA=Sg();Fr.exports.DEFAULT_FULL_SCHEMA=Mp();Fr.exports.load=gI.load;Fr.exports.loadAll=gI.loadAll;Fr.exports.safeLoad=gI.safeLoad;Fr.exports.safeLoadAll=gI.safeLoadAll;Fr.exports.dump=S2.dump;Fr.exports.safeDump=S2.safeDump;Fr.exports.YAMLException=Qg();Fr.exports.MINIMAL_SCHEMA=sI();Fr.exports.SAFE_SCHEMA=Sg();Fr.exports.DEFAULT_SCHEMA=Mp();Fr.exports.scan=fI("scan");Fr.exports.parse=fI("parse");Fr.exports.compose=fI("compose");Fr.exports.addConstructor=fI("addConstructor")});var P2=w((GXe,x2)=>{"use strict";var ppe=v2();x2.exports=ppe});var k2=w((YXe,D2)=>{"use strict";function dpe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,zl)}dpe(zl,Error);zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Ts("correct indentation"),V=" ",W=ar(" ",!1),Z=function(R){return R.length===pA*ug},A=function(R){return R.length===(pA+1)*ug},ae=function(){return pA++,!0},ge=function(){return pA--,!0},re=function(){return sg()},O=Ts("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Rn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,ke=Rn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return sg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,we=Rn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,Ae=Rn(["\r",` +`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},pe="true",ie=ar("true",!1),de=function(){return!0},tt="false",Pt=ar("false",!1),It=function(){return!1},Or=Ts("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ls=/^[^"\\\0-\x1F\x7F]/,pr=Rn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',_n=ar('\\"',!1),oa=function(){return'"'},aA="\\\\",eg=ar("\\\\",!1),Zn=function(){return"\\"},AA="\\/",aa=ar("\\/",!1),up=function(){return"/"},lA="\\b",cA=ar("\\b",!1),wr=function(){return"\b"},wl="\\f",tg=ar("\\f",!1),po=function(){return"\f"},rg="\\n",gp=ar("\\n",!1),fp=function(){return` +`},vr="\\r",se=ar("\\r",!1),Co=function(){return"\r"},Dn="\\t",ig=ar("\\t",!1),Qt=function(){return" "},Bl="\\u",kn=ar("\\u",!1),$n=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},es=/^[0-9a-fA-F]/,gt=Rn([["0","9"],["a","f"],["A","F"]],!1,!1),mo=Ts("blank space"),At=/^[ \t]/,an=Rn([" "," "],!1,!1),S=Ts("white space"),Tt=/^[ \t\n\r]/,ng=Rn([" "," ",` +`,"\r"],!1,!1),Ql=`\r +`,hp=ar(`\r +`,!1),pp=` +`,dp=ar(` +`,!1),Cp="\r",mp=ar("\r",!1),G=0,yt=0,uA=[{line:1,column:1}],ji=0,bl=[],Xe=0,Aa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function sg(){return r.substring(yt,G)}function bE(){return An(yt,G)}function Ep(R,q){throw q=q!==void 0?q:An(yt,G),vl([Ts(R)],r.substring(yt,G),q)}function SE(R,q){throw q=q!==void 0?q:An(yt,G),og(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Rn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Sl(){return{type:"any"}}function Ip(){return{type:"end"}}function Ts(R){return{type:"other",description:R}}function la(R){var q=uA[R],Ce;if(q)return q;for(Ce=R-1;!uA[Ce];)Ce--;for(q=uA[Ce],q={line:q.line,column:q.column};Ceji&&(ji=G,bl=[]),bl.push(R))}function og(R,q){return new zl(R,null,null,q)}function vl(R,q,Ce){return new zl(zl.buildMessage(R,q),R,q,Ce)}function Os(){var R;return R=ag(),R}function xl(){var R,q,Ce;for(R=G,q=[],Ce=gA();Ce!==t;)q.push(Ce),Ce=gA();return q!==t&&(yt=R,q=s(q)),R=q,R}function gA(){var R,q,Ce,Ke,Re;return R=G,q=ua(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Te(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function ag(){var R,q,Ce;for(R=G,q=[],Ce=Ag();Ce!==t;)q.push(Ce),Ce=Ag();return q!==t&&(yt=R,q=c(q)),R=q,R}function Ag(){var R,q,Ce,Ke,Re,ze,dt,Ft,Fn;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Te(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=Us(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=Us(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ks(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ks();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ua(),q!==t?(Ce=Pl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ua(),q!==t?(Ce=Ms(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ua(),q!==t)if(Ce=Ms(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=vE(),Re!==t){if(ze=[],dt=Ks(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ks();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ua(),q!==t)if(Ce=Ms(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Fn=Ms(),Fn!==t?(yt=Re,ze=D(Ce,Fn),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Fn=Ms(),Fn!==t?(yt=Re,ze=D(Ce,Fn),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Te(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=ca(),Ft!==t?(yt=R,q=L(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=Us(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Te(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ks(),Ce!==t?(Ke=Eo(),Ke!==t?(Re=xl(),Re!==t?(ze=fA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Us(),q!==t?(Ce=Eo(),Ce!==t?(Ke=ag(),Ke!==t?(Re=fA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Dl(),q!==t){if(Ce=[],Ke=Ks(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ks();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ua(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=Z(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Te($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function Eo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function fA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Pl(){var R;return R=kl(),R===t&&(R=yp()),R}function Ms(){var R,q,Ce;if(R=kl(),R===t){if(R=G,q=[],Ce=lg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=lg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Dl(){var R;return R=wp(),R===t&&(R=xE(),R===t&&(R=kl(),R===t&&(R=yp()))),R}function vE(){var R;return R=wp(),R===t&&(R=kl(),R===t&&(R=lg())),R}function yp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(he.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(he.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(O)),R}function lg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Te(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Te(we)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(Ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(Ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function wp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Te(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function xE(){var R,q;return R=G,r.substr(G,4)===pe?(q=pe,G+=4):(q=t,Xe===0&&Te(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===tt?(q=tt,G+=5):(q=t,Xe===0&&Te(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function kl(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Te(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(Ce=PE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Te(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Te(Or)),R}function PE(){var R,q,Ce;if(R=G,q=[],Ce=cg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=cg();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function cg(){var R,q,Ce,Ke,Re,ze;return Ls.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(pr)),R===t&&(R=G,r.substr(G,2)===Ei?(q=Ei,G+=2):(q=t,Xe===0&&Te(_n)),q!==t&&(yt=R,q=oa()),R=q,R===t&&(R=G,r.substr(G,2)===aA?(q=aA,G+=2):(q=t,Xe===0&&Te(eg)),q!==t&&(yt=R,q=Zn()),R=q,R===t&&(R=G,r.substr(G,2)===AA?(q=AA,G+=2):(q=t,Xe===0&&Te(aa)),q!==t&&(yt=R,q=up()),R=q,R===t&&(R=G,r.substr(G,2)===lA?(q=lA,G+=2):(q=t,Xe===0&&Te(cA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===wl?(q=wl,G+=2):(q=t,Xe===0&&Te(tg)),q!==t&&(yt=R,q=po()),R=q,R===t&&(R=G,r.substr(G,2)===rg?(q=rg,G+=2):(q=t,Xe===0&&Te(gp)),q!==t&&(yt=R,q=fp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Te(se)),q!==t&&(yt=R,q=Co()),R=q,R===t&&(R=G,r.substr(G,2)===Dn?(q=Dn,G+=2):(q=t,Xe===0&&Te(ig)),q!==t&&(yt=R,q=Qt()),R=q,R===t&&(R=G,r.substr(G,2)===Bl?(q=Bl,G+=2):(q=t,Xe===0&&Te(kn)),q!==t?(Ce=hA(),Ce!==t?(Ke=hA(),Ke!==t?(Re=hA(),Re!==t?(ze=hA(),ze!==t?(yt=R,q=$n(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function hA(){var R;return es.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(an)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(an));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(mo)),R}function DE(){var R,q;if(Xe++,R=[],Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ng)),q!==t)for(;q!==t;)R.push(q),Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ng));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(S)),R}function Ks(){var R,q,Ce,Ke,Re,ze;if(R=G,q=Us(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=Us(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=Us(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function Us(){var R;return r.substr(G,2)===Ql?(R=Ql,G+=2):(R=t,Xe===0&&Te(hp)),R===t&&(r.charCodeAt(G)===10?(R=pp,G++):(R=t,Xe===0&&Te(dp)),R===t&&(r.charCodeAt(G)===13?(R=Cp,G++):(R=t,Xe===0&&Te(mp)))),R}let ug=2,pA=0;if(Aa=n(),Aa!==t&&G===r.length)return Aa;throw Aa!==t&&G{"use strict";var wpe=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wpe(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};KS.exports=T2;KS.exports.default=T2});var M2=w((VXe,Bpe)=>{Bpe.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Vl=w(On=>{"use strict";var U2=M2(),Qo=process.env;Object.defineProperty(On,"_vendors",{value:U2.map(function(r){return r.constant})});On.name=null;On.isPR=null;U2.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return K2(i)});if(On[r.constant]=t,t)switch(On.name=r.name,typeof r.pr){case"string":On.isPR=!!Qo[r.pr];break;case"object":"env"in r.pr?On.isPR=r.pr.env in Qo&&Qo[r.pr.env]!==r.pr.ne:"any"in r.pr?On.isPR=r.pr.any.some(function(i){return!!Qo[i]}):On.isPR=K2(r.pr);break;default:On.isPR=null}});On.isCI=!!(Qo.CI||Qo.CONTINUOUS_INTEGRATION||Qo.BUILD_NUMBER||Qo.RUN_ID||On.name);function K2(r){return typeof r=="string"?!!Qo[r]:Object.keys(r).every(function(e){return Qo[e]===r[e]})}});var gn={};ut(gn,{KeyRelationship:()=>Xl,applyCascade:()=>zp,base64RegExp:()=>q2,colorStringAlphaRegExp:()=>j2,colorStringRegExp:()=>Y2,computeKey:()=>BA,getPrintable:()=>Vr,hasExactLength:()=>X2,hasForbiddenKeys:()=>tde,hasKeyRelationship:()=>JS,hasMaxLength:()=>Mpe,hasMinLength:()=>Ope,hasMutuallyExclusiveKeys:()=>rde,hasRequiredKeys:()=>ede,hasUniqueItems:()=>Kpe,isArray:()=>Ppe,isAtLeast:()=>Gpe,isAtMost:()=>Ype,isBase64:()=>Zpe,isBoolean:()=>Spe,isDate:()=>xpe,isDict:()=>kpe,isEnum:()=>Wi,isHexColor:()=>_pe,isISO8601:()=>Xpe,isInExclusiveRange:()=>qpe,isInInclusiveRange:()=>jpe,isInstanceOf:()=>Fpe,isInteger:()=>Jpe,isJSON:()=>$pe,isLiteral:()=>Qpe,isLowerCase:()=>Wpe,isNegative:()=>Upe,isNullable:()=>Tpe,isNumber:()=>vpe,isObject:()=>Rpe,isOneOf:()=>Npe,isOptional:()=>Lpe,isPositive:()=>Hpe,isString:()=>Wp,isTuple:()=>Dpe,isUUID4:()=>Vpe,isUnknown:()=>V2,isUpperCase:()=>zpe,iso8601RegExp:()=>qS,makeCoercionFn:()=>_l,makeSetter:()=>z2,makeTrait:()=>W2,makeValidator:()=>bt,matchesRegExp:()=>Vp,plural:()=>EI,pushError:()=>pt,simpleKeyRegExp:()=>G2,uuid4RegExp:()=>J2});function bt({test:r}){return W2(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function BA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:G2.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function _l(r,e){return t=>{let i=r[e];return r[e]=t,_l(r,e).bind(null,i)}}function z2(r,e){return t=>{r[e]=t}}function EI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qpe(r){return bt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Wi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return bt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var G2,Y2,j2,q2,J2,qS,W2,V2,Wp,bpe,Spe,vpe,xpe,Ppe,Dpe,kpe,Rpe,Fpe,Npe,zp,Lpe,Tpe,Ope,Mpe,X2,Kpe,Upe,Hpe,Gpe,Ype,jpe,qpe,Jpe,Vp,Wpe,zpe,Vpe,Xpe,_pe,Zpe,$pe,ede,tde,rde,Xl,ide,JS,ns=Yue(()=>{G2=/^[a-zA-Z_][a-zA-Z0-9_]*$/,Y2=/^#[0-9a-f]{6}$/i,j2=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,q2=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,J2=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,qS=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,W2=r=>()=>r;V2=()=>bt({test:(r,e)=>!0});Wp=()=>bt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});bpe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Spe=()=>bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=bpe.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),vpe=()=>bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),xpe=()=>bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&qS.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),Ppe=(r,{delimiter:e}={})=>bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=X2(r.length);return bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;abt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return bt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:BA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:BA(n,l),coercion:_l(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:BA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:z2(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fpe=r=>bt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),Npe=(r,{exclusive:e=!1}={})=>bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),zp=(r,e)=>bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?_l(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Lpe=r=>bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Tpe=r=>bt({test:(e,t)=>e===null?!0:r(e,t)}),Ope=r=>bt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mpe=r=>bt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),X2=r=>bt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kpe=({map:r}={})=>bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sbt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),Hpe=()=>bt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Gpe=r=>bt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Ype=r=>bt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),jpe=(r,e)=>bt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qpe=(r,e)=>bt({test:(t,i)=>t>=r&&tbt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),Vp=r=>bt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Wpe=()=>bt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),zpe=()=>bt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Vpe=()=>bt({test:(r,e)=>J2.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Xpe=()=>bt({test:(r,e)=>qS.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),_pe=({alpha:r=!1})=>bt({test:(e,t)=>(r?Y2.test(e):j2.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),Zpe=()=>bt({test:(r,e)=>q2.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),$pe=(r=V2())=>bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),ede=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${EI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${EI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(Xl||(Xl={}));ide={[Xl.Forbids]:{expect:!1,message:"forbids using"},[Xl.Requires]:{expect:!0,message:"requires using"}},JS=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=ide[e];return bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${EI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var fH=w((V_e,gH)=>{"use strict";gH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Tg=w((X_e,ev)=>{"use strict";var Ide=fH(),hH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Ide(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};ev.exports=hH;ev.exports.default=hH});var ed=w((Z_e,pH)=>{var yde="2.0.0",wde=Number.MAX_SAFE_INTEGER||9007199254740991,Bde=16;pH.exports={SEMVER_SPEC_VERSION:yde,MAX_LENGTH:256,MAX_SAFE_INTEGER:wde,MAX_SAFE_COMPONENT_LENGTH:Bde}});var td=w(($_e,dH)=>{var Qde=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};dH.exports=Qde});var Zl=w((bA,CH)=>{var{MAX_SAFE_COMPONENT_LENGTH:tv}=ed(),bde=td();bA=CH.exports={};var Sde=bA.re=[],$e=bA.src=[],et=bA.t={},vde=0,St=(r,e,t)=>{let i=vde++;bde(i,e),et[r]=i,$e[i]=e,Sde[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);St("FULL",`^${$e[et.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);St("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);St("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${tv}})(?:\\.(\\d{1,${tv}}))?(?:\\.(\\d{1,${tv}}))?(?:$|[^\\d])`);St("COERCERTL",$e[et.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);bA.tildeTrimReplace="$1~";St("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);bA.caretTrimReplace="$1^";St("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);bA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var rd=w((eZe,mH)=>{var xde=["includePrerelease","loose","rtl"],Pde=r=>r?typeof r!="object"?{loose:!0}:xde.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};mH.exports=Pde});var bI=w((tZe,yH)=>{var EH=/^[0-9]+$/,IH=(r,e)=>{let t=EH.test(r),i=EH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rIH(e,r);yH.exports={compareIdentifiers:IH,rcompareIdentifiers:Dde}});var Li=w((rZe,bH)=>{var SI=td(),{MAX_LENGTH:wH,MAX_SAFE_INTEGER:vI}=ed(),{re:BH,t:QH}=Zl(),kde=rd(),{compareIdentifiers:id}=bI(),Un=class{constructor(e,t){if(t=kde(t),e instanceof Un){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>wH)throw new TypeError(`version is longer than ${wH} characters`);SI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?BH[QH.LOOSE]:BH[QH.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>vI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>vI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>vI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};bH.exports=Un});var $l=w((iZe,PH)=>{var{MAX_LENGTH:Rde}=ed(),{re:SH,t:vH}=Zl(),xH=Li(),Fde=rd(),Nde=(r,e)=>{if(e=Fde(e),r instanceof xH)return r;if(typeof r!="string"||r.length>Rde||!(e.loose?SH[vH.LOOSE]:SH[vH.FULL]).test(r))return null;try{return new xH(r,e)}catch{return null}};PH.exports=Nde});var kH=w((nZe,DH)=>{var Lde=$l(),Tde=(r,e)=>{let t=Lde(r,e);return t?t.version:null};DH.exports=Tde});var FH=w((sZe,RH)=>{var Ode=$l(),Mde=(r,e)=>{let t=Ode(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};RH.exports=Mde});var LH=w((oZe,NH)=>{var Kde=Li(),Ude=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new Kde(r,t).inc(e,i).version}catch{return null}};NH.exports=Ude});var ss=w((aZe,OH)=>{var TH=Li(),Hde=(r,e,t)=>new TH(r,t).compare(new TH(e,t));OH.exports=Hde});var xI=w((AZe,MH)=>{var Gde=ss(),Yde=(r,e,t)=>Gde(r,e,t)===0;MH.exports=Yde});var HH=w((lZe,UH)=>{var KH=$l(),jde=xI(),qde=(r,e)=>{if(jde(r,e))return null;{let t=KH(r),i=KH(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};UH.exports=qde});var YH=w((cZe,GH)=>{var Jde=Li(),Wde=(r,e)=>new Jde(r,e).major;GH.exports=Wde});var qH=w((uZe,jH)=>{var zde=Li(),Vde=(r,e)=>new zde(r,e).minor;jH.exports=Vde});var WH=w((gZe,JH)=>{var Xde=Li(),_de=(r,e)=>new Xde(r,e).patch;JH.exports=_de});var VH=w((fZe,zH)=>{var Zde=$l(),$de=(r,e)=>{let t=Zde(r,e);return t&&t.prerelease.length?t.prerelease:null};zH.exports=$de});var _H=w((hZe,XH)=>{var eCe=ss(),tCe=(r,e,t)=>eCe(e,r,t);XH.exports=tCe});var $H=w((pZe,ZH)=>{var rCe=ss(),iCe=(r,e)=>rCe(r,e,!0);ZH.exports=iCe});var PI=w((dZe,tG)=>{var eG=Li(),nCe=(r,e,t)=>{let i=new eG(r,t),n=new eG(e,t);return i.compare(n)||i.compareBuild(n)};tG.exports=nCe});var iG=w((CZe,rG)=>{var sCe=PI(),oCe=(r,e)=>r.sort((t,i)=>sCe(t,i,e));rG.exports=oCe});var sG=w((mZe,nG)=>{var aCe=PI(),ACe=(r,e)=>r.sort((t,i)=>aCe(i,t,e));nG.exports=ACe});var nd=w((EZe,oG)=>{var lCe=ss(),cCe=(r,e,t)=>lCe(r,e,t)>0;oG.exports=cCe});var DI=w((IZe,aG)=>{var uCe=ss(),gCe=(r,e,t)=>uCe(r,e,t)<0;aG.exports=gCe});var rv=w((yZe,AG)=>{var fCe=ss(),hCe=(r,e,t)=>fCe(r,e,t)!==0;AG.exports=hCe});var kI=w((wZe,lG)=>{var pCe=ss(),dCe=(r,e,t)=>pCe(r,e,t)>=0;lG.exports=dCe});var RI=w((BZe,cG)=>{var CCe=ss(),mCe=(r,e,t)=>CCe(r,e,t)<=0;cG.exports=mCe});var iv=w((QZe,uG)=>{var ECe=xI(),ICe=rv(),yCe=nd(),wCe=kI(),BCe=DI(),QCe=RI(),bCe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return ECe(r,t,i);case"!=":return ICe(r,t,i);case">":return yCe(r,t,i);case">=":return wCe(r,t,i);case"<":return BCe(r,t,i);case"<=":return QCe(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};uG.exports=bCe});var fG=w((bZe,gG)=>{var SCe=Li(),vCe=$l(),{re:FI,t:NI}=Zl(),xCe=(r,e)=>{if(r instanceof SCe)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(FI[NI.COERCE]);else{let i;for(;(i=FI[NI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),FI[NI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;FI[NI.COERCERTL].lastIndex=-1}return t===null?null:vCe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};gG.exports=xCe});var pG=w((SZe,hG)=>{"use strict";hG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var sd=w((vZe,dG)=>{"use strict";dG.exports=Ht;Ht.Node=ec;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var RCe=sd(),tc=Symbol("max"),Ia=Symbol("length"),Og=Symbol("lengthCalculator"),ad=Symbol("allowStale"),rc=Symbol("maxAge"),Ea=Symbol("dispose"),CG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Ws=Symbol("cache"),EG=Symbol("updateAgeOnGet"),nv=()=>1,ov=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[tc]=e.max||1/0,i=e.length||nv;if(this[Og]=typeof i!="function"?nv:i,this[ad]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[rc]=e.maxAge||0,this[Ea]=e.dispose,this[CG]=e.noDisposeOnSet||!1,this[EG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[tc]=e||1/0,od(this)}get max(){return this[tc]}set allowStale(e){this[ad]=!!e}get allowStale(){return this[ad]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[rc]=e,od(this)}get maxAge(){return this[rc]}set lengthCalculator(e){typeof e!="function"&&(e=nv),e!==this[Og]&&(this[Og]=e,this[Ia]=0,this[di].forEach(t=>{t.length=this[Og](t.value,t.key),this[Ia]+=t.length})),od(this)}get lengthCalculator(){return this[Og]}get length(){return this[Ia]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;mG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;mG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Ea]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Ea](e.key,e.value)),this[Ws]=new Map,this[di]=new RCe,this[Ia]=0}dump(){return this[di].map(e=>LI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[rc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Og](t,e);if(this[Ws].has(e)){if(s>this[tc])return Mg(this,this[Ws].get(e)),!1;let l=this[Ws].get(e).value;return this[Ea]&&(this[CG]||this[Ea](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Ia]+=s-l.length,l.length=s,this.get(e),od(this),!0}let o=new av(e,t,s,n,i);return o.length>this[tc]?(this[Ea]&&this[Ea](e,t),!1):(this[Ia]+=o.length,this[di].unshift(o),this[Ws].set(e,this[di].head),od(this),!0)}has(e){if(!this[Ws].has(e))return!1;let t=this[Ws].get(e).value;return!LI(this,t)}get(e){return sv(this,e,!0)}peek(e){return sv(this,e,!1)}pop(){let e=this[di].tail;return e?(Mg(this,e),e.value):null}del(e){Mg(this,this[Ws].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Ws].forEach((e,t)=>sv(this,t,!1))}},sv=(r,e,t)=>{let i=r[Ws].get(e);if(i){let n=i.value;if(LI(r,n)){if(Mg(r,i),!r[ad])return}else t&&(r[EG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},LI=(r,e)=>{if(!e||!e.maxAge&&!r[rc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[rc]&&t>r[rc]},od=r=>{if(r[Ia]>r[tc])for(let e=r[di].tail;r[Ia]>r[tc]&&e!==null;){let t=e.prev;Mg(r,e),e=t}},Mg=(r,e)=>{if(e){let t=e.value;r[Ea]&&r[Ea](t.key,t.value),r[Ia]-=t.length,r[Ws].delete(t.key),r[di].removeNode(e)}},av=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},mG=(r,e,t,i)=>{let n=t.value;LI(r,n)&&(Mg(r,t),r[ad]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};IG.exports=ov});var os=w((PZe,bG)=>{var ic=class{constructor(e,t){if(t=NCe(t),e instanceof ic)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new ic(e.raw,t);if(e instanceof Av)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!BG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&KCe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=wG.get(i);if(n)return n;let s=this.options.loose,o=s?Ti[Bi.HYPHENRANGELOOSE]:Ti[Bi.HYPHENRANGE];e=e.replace(o,VCe(this.options.includePrerelease)),Gr("hyphen replace",e),e=e.replace(Ti[Bi.COMPARATORTRIM],TCe),Gr("comparator trim",e,Ti[Bi.COMPARATORTRIM]),e=e.replace(Ti[Bi.TILDETRIM],OCe),e=e.replace(Ti[Bi.CARETTRIM],MCe),e=e.split(/\s+/).join(" ");let a=s?Ti[Bi.COMPARATORLOOSE]:Ti[Bi.COMPARATOR],l=e.split(" ").map(f=>UCe(f,this.options)).join(" ").split(/\s+/).map(f=>zCe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Av(f,this.options)),c=l.length,u=new Map;for(let f of l){if(BG(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return wG.set(i,g),g}intersects(e,t){if(!(e instanceof ic))throw new TypeError("a Range is required");return this.set.some(i=>QG(i,t)&&e.set.some(n=>QG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new LCe(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",KCe=r=>r.value==="",QG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},UCe=(r,e)=>(Gr("comp",r,e),r=YCe(r,e),Gr("caret",r),r=HCe(r,e),Gr("tildes",r),r=qCe(r,e),Gr("xrange",r),r=WCe(r,e),Gr("stars",r),r),Vi=r=>!r||r.toLowerCase()==="x"||r==="*",HCe=(r,e)=>r.trim().split(/\s+/).map(t=>GCe(t,e)).join(" "),GCe=(r,e)=>{let t=e.loose?Ti[Bi.TILDELOOSE]:Ti[Bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Gr("tilde",r,i,n,s,o,a);let l;return Vi(n)?l="":Vi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Vi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Gr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Gr("tilde return",l),l})},YCe=(r,e)=>r.trim().split(/\s+/).map(t=>jCe(t,e)).join(" "),jCe=(r,e)=>{Gr("caret",r,e);let t=e.loose?Ti[Bi.CARETLOOSE]:Ti[Bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Gr("caret",r,n,s,o,a,l);let c;return Vi(s)?c="":Vi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Vi(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Gr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Gr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Gr("caret return",c),c})},qCe=(r,e)=>(Gr("replaceXRanges",r,e),r.split(/\s+/).map(t=>JCe(t,e)).join(" ")),JCe=(r,e)=>{r=r.trim();let t=e.loose?Ti[Bi.XRANGELOOSE]:Ti[Bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Gr("xRange",r,i,n,s,o,a,l);let c=Vi(s),u=c||Vi(o),g=u||Vi(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Gr("xRange return",i),i})},WCe=(r,e)=>(Gr("replaceStars",r,e),r.trim().replace(Ti[Bi.STAR],"")),zCe=(r,e)=>(Gr("replaceGTE0",r,e),r.trim().replace(Ti[e.includePrerelease?Bi.GTE0PRE:Bi.GTE0],"")),VCe=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Vi(i)?t="":Vi(n)?t=`>=${i}.0.0${r?"-0":""}`:Vi(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Vi(c)?l="":Vi(u)?l=`<${+c+1}.0.0-0`:Vi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),XCe=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ad=w((DZe,DG)=>{var ld=Symbol("SemVer ANY"),Kg=class{static get ANY(){return ld}constructor(e,t){if(t=_Ce(t),e instanceof Kg){if(e.loose===!!t.loose)return e;e=e.value}cv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ld?this.value="":this.value=this.operator+this.semver.version,cv("comp",this)}parse(e){let t=this.options.loose?SG[vG.COMPARATORLOOSE]:SG[vG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new xG(i[2],this.options.loose):this.semver=ld}toString(){return this.value}test(e){if(cv("Comparator.test",e,this.options.loose),this.semver===ld||e===ld)return!0;if(typeof e=="string")try{e=new xG(e,this.options)}catch{return!1}return lv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Kg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new PG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new PG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=lv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=lv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};DG.exports=Kg;var _Ce=rd(),{re:SG,t:vG}=Zl(),lv=iv(),cv=td(),xG=Li(),PG=os()});var cd=w((kZe,kG)=>{var ZCe=os(),$Ce=(r,e,t)=>{try{e=new ZCe(e,t)}catch{return!1}return e.test(r)};kG.exports=$Ce});var FG=w((RZe,RG)=>{var eme=os(),tme=(r,e)=>new eme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));RG.exports=tme});var LG=w((FZe,NG)=>{var rme=Li(),ime=os(),nme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new ime(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rme(i,t))}),i};NG.exports=nme});var OG=w((NZe,TG)=>{var sme=Li(),ome=os(),ame=(r,e,t)=>{let i=null,n=null,s=null;try{s=new ome(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sme(i,t))}),i};TG.exports=ame});var UG=w((LZe,KG)=>{var uv=Li(),Ame=os(),MG=nd(),lme=(r,e)=>{r=new Ame(r,e);let t=new uv("0.0.0");if(r.test(t)||(t=new uv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new uv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||MG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||MG(t,s))&&(t=s)}return t&&r.test(t)?t:null};KG.exports=lme});var GG=w((TZe,HG)=>{var cme=os(),ume=(r,e)=>{try{return new cme(r,e).range||"*"}catch{return null}};HG.exports=ume});var TI=w((OZe,JG)=>{var gme=Li(),qG=Ad(),{ANY:fme}=qG,hme=os(),pme=cd(),YG=nd(),jG=DI(),dme=RI(),Cme=kI(),mme=(r,e,t,i)=>{r=new gme(r,i),e=new hme(e,i);let n,s,o,a,l;switch(t){case">":n=YG,s=dme,o=jG,a=">",l=">=";break;case"<":n=jG,s=Cme,o=YG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pme(r,e,i))return!1;for(let c=0;c{h.semver===fme&&(h=new qG(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};JG.exports=mme});var zG=w((MZe,WG)=>{var Eme=TI(),Ime=(r,e,t)=>Eme(r,e,">",t);WG.exports=Ime});var XG=w((KZe,VG)=>{var yme=TI(),wme=(r,e,t)=>yme(r,e,"<",t);VG.exports=wme});var $G=w((UZe,ZG)=>{var _G=os(),Bme=(r,e,t)=>(r=new _G(r,t),e=new _G(e,t),r.intersects(e));ZG.exports=Bme});var tY=w((HZe,eY)=>{var Qme=cd(),bme=ss();eY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bme(u,g,t));for(let u of o)Qme(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var rY=os(),OI=Ad(),{ANY:gv}=OI,ud=cd(),fv=ss(),Sme=(r,e,t={})=>{if(r===e)return!0;r=new rY(r,t),e=new rY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vme(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vme=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===gv){if(e.length===1&&e[0].semver===gv)return!0;t.includePrerelease?r=[new OI(">=0.0.0-0")]:r=[new OI(">=0.0.0")]}if(e.length===1&&e[0].semver===gv){if(t.includePrerelease)return!0;e=[new OI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=iY(n,h,t):h.operator==="<"||h.operator==="<="?s=nY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=fv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!ud(h,String(n),t)||s&&!ud(h,String(s),t))return null;for(let p of e)if(!ud(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=iY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!ud(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=nY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!ud(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},iY=(r,e,t)=>{if(!r)return e;let i=fv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},nY=(r,e,t)=>{if(!r)return e;let i=fv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};sY.exports=Sme});var Xr=w((YZe,aY)=>{var hv=Zl();aY.exports={re:hv.re,src:hv.src,tokens:hv.t,SEMVER_SPEC_VERSION:ed().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:bI().compareIdentifiers,rcompareIdentifiers:bI().rcompareIdentifiers,parse:$l(),valid:kH(),clean:FH(),inc:LH(),diff:HH(),major:YH(),minor:qH(),patch:WH(),prerelease:VH(),compare:ss(),rcompare:_H(),compareLoose:$H(),compareBuild:PI(),sort:iG(),rsort:sG(),gt:nd(),lt:DI(),eq:xI(),neq:rv(),gte:kI(),lte:RI(),cmp:iv(),coerce:fG(),Comparator:Ad(),Range:os(),satisfies:cd(),toComparators:FG(),maxSatisfying:LG(),minSatisfying:OG(),minVersion:UG(),validRange:GG(),outside:TI(),gtr:zG(),ltr:XG(),intersects:$G(),simplifyRange:tY(),subset:oY()}});var pv=w(MI=>{"use strict";Object.defineProperty(MI,"__esModule",{value:!0});MI.VERSION=void 0;MI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof KI=="object"&&KI.exports?KI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:AY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var GI=w(Ug=>{"use strict";Object.defineProperty(Ug,"__esModule",{value:!0});Ug.clearRegExpParserCache=Ug.getRegExpAst=void 0;var xme=UI(),HI={},Pme=new xme.RegExpParser;function Dme(r){var e=r.toString();if(HI.hasOwnProperty(e))return HI[e];var t=Pme.pattern(e);return HI[e]=t,t}Ug.getRegExpAst=Dme;function kme(){HI={}}Ug.clearRegExpParserCache=kme});var fY=w(pn=>{"use strict";var Rme=pn&&pn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(pn,"__esModule",{value:!0});pn.canMatchCharCode=pn.firstCharOptimizedIndices=pn.getOptimizedStartCodesIndices=pn.failedOptimizationPrefixMsg=void 0;var cY=UI(),as=Gt(),uY=GI(),ya=Cv(),gY="Complement Sets are not supported for first char optimization";pn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function Fme(r,e){e===void 0&&(e=!1);try{var t=(0,uY.getRegExpAst)(r),i=jI(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===gY)e&&(0,as.PRINT_WARNING)(""+pn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,as.PRINT_ERROR)(pn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+cY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}pn.getOptimizedStartCodesIndices=Fme;function jI(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=ya.minOptimizationVal)for(var f=u.from>=ya.minOptimizationVal?u.from:ya.minOptimizationVal,h=u.to,p=(0,ya.charCodeToOptimizedIndex)(f),C=(0,ya.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":jI(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,as.values)(e)}pn.firstCharOptimizedIndices=jI;function YI(r,e,t){var i=(0,ya.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&Nme(r,e)}function Nme(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,ya.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,ya.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function lY(r,e){return(0,as.find)(r.value,function(t){if(typeof t=="number")return(0,as.contains)(e,t);var i=t;return(0,as.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,as.isArray)(r.value)?(0,as.every)(r.value,dv):dv(r.value):!1}var Lme=function(r){Rme(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,as.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?lY(t,this.targetCharCodes)===void 0&&(this.found=!0):lY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(cY.BaseRegExpVisitor);function Tme(r,e){if(e instanceof RegExp){var t=(0,uY.getRegExpAst)(e),i=new Lme(r);return i.visit(t),i.found}else return(0,as.find)(e,function(n){return(0,as.contains)(r,n.charCodeAt(0))})!==void 0}pn.canMatchCharCode=Tme});var Cv=w(Ve=>{"use strict";var hY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var pY=UI(),ir=gd(),xe=Gt(),Hg=fY(),dY=GI(),So="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function Ome(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=Ome;function Mme(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=Mme;function Kme(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){Vme()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[So]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[So];if((0,xe.isRegExp)(D)){var L=D.source;return L.length===1&&L!=="^"&&L!=="$"&&L!=="."&&!D.ignoreCase?L:L.length===2&&L[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],L[1])?L[1]:e.useSticky?Iv(D):Ev(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Iv(j):Ev(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var L=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return L}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=DY(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(xY(D,v)===!1)return(0,Hg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,wv),h=(0,xe.map)(s,vY),p=(0,xe.reduce)(i,function(v,D){var L=D.GROUP;return(0,xe.isString)(L)&&L!==ir.Lexer.SKIPPED&&(v[L]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,L){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=yv(H);mv(v,j,C[L])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=yv(Z);$!==A&&($=A,mv(v,A,C[L]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Hg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Hg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){mv(v,W,C[L])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Hg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=Kme;function Ume(r,e){var t=[],i=CY(r);t=t.concat(i.errors);var n=mY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(Hme(s)),t=t.concat(QY(s)),t=t.concat(bY(s,e)),t=t.concat(SY(s)),t}Ve.validatePatterns=Ume;function Hme(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[So])});return e=e.concat(EY(t)),e=e.concat(yY(t)),e=e.concat(wY(t)),e=e.concat(BY(t)),e=e.concat(IY(t)),e}function CY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,So)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=CY;function mY(r){var e=(0,xe.filter)(r,function(n){var s=n[So];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=mY;var Gme=/[^\\][\$]/;function EY(r){var e=function(n){hY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(pY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[So];try{var o=(0,dY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return Gme.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=EY;function IY(r){var e=(0,xe.filter)(r,function(i){var n=i[So];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=IY;var Yme=/[^\\[][\^]|^\^/;function yY(r){var e=function(n){hY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(pY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[So];try{var o=(0,dY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return Yme.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=yY;function wY(r){var e=(0,xe.filter)(r,function(i){var n=i[So];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=wY;function BY(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=BY;function QY(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=QY;function bY(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=bY;function SY(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&qme(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=SY;function jme(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qme(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Ev(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Ev;function Iv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Iv;function Jme(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=Jme;function Wme(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[So]===ir.Lexer.NA}),a=DY(t);return e&&(0,xe.forEach)(o,function(l){var c=xY(l,a);if(c!==!1){var u=PY(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Hg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=Wme;function zme(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=zme;function wv(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=wv;function vY(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=vY;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=PY;function DY(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function mv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var qI=[];function yv(r){return r255?255+~~(r/255):r}}});var Gg=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var _r=Gt();function Xme(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=Xme;function _me(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=_me;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function Zme(r){var e=kY(r);RY(e),NY(e),FY(e),(0,_r.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=Zme;function kY(r){for(var e=(0,_r.cloneArr)(r),t=r,i=!0;i;){t=(0,_r.compact)((0,_r.flatten)((0,_r.map)(t,function(s){return s.CATEGORIES})));var n=(0,_r.difference)(t,e);e=e.concat(n),(0,_r.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=kY;function RY(r){(0,_r.forEach)(r,function(e){LY(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Bv(e)&&!(0,_r.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Bv(e)||(e.CATEGORIES=[]),TY(e)||(e.categoryMatches=[]),OY(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=RY;function FY(r){(0,_r.forEach)(r,function(e){e.categoryMatches=[],(0,_r.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=FY;function NY(r){(0,_r.forEach)(r,function(e){Qv([],e)})}Nt.assignCategoriesMapProp=NY;function Qv(r,e){(0,_r.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,_r.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,_r.contains)(i,t)||Qv(i,t)})}Nt.singleAssignCategoriesToksMap=Qv;function LY(r){return(0,_r.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=LY;function Bv(r){return(0,_r.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Bv;function TY(r){return(0,_r.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=TY;function OY(r){return(0,_r.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=OY;function $me(r){return(0,_r.has)(r,"tokenTypeIdx")}Nt.isTokenType=$me});var bv=w(JI=>{"use strict";Object.defineProperty(JI,"__esModule",{value:!0});JI.defaultLexerErrorProvider=void 0;JI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var gd=w(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.Lexer=nc.LexerDefinitionErrorType=void 0;var zs=Cv(),nr=Gt(),eEe=Gg(),tEe=bv(),rEe=GI(),iEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iEe=nc.LexerDefinitionErrorType||(nc.LexerDefinitionErrorType={}));var fd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(fd);var nEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=fd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(fd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===fd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===fd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[zs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[zs.DEFAULT_MODE]=zs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,zs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,eEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(zs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,L=e,H=L.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,zs.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,O=this.config.lineTerminatorsPattern,F=0,ue=[],he=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ei=(0,zs.charCodeToOptimizedIndex)(pr),_n=he[Ei];return _n===void 0?Fe:_n}var we=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);Z.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ei})}else{ke.pop();var _n=(0,nr.last)(ke);ue=i.patternIdxToConfig[_n],he=i.charCodeToPatternIdxToConfig[_n],F=ue.length;var oa=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;he&&oa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),he=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ei=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;he&&Ei?Ne=le:Ne=oe}fe.call(this,t);for(var Ae;jc.length){c=a,u=g,Ae=tt;break}}}break}}if(c!==null){if(f=c.length,h=Ae.group,h!==void 0&&(p=Ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,Ae.tokenType,A,ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),re===!0&&Ae.canLineTerminator===!0){var It=0,Or=void 0,ii=void 0;O.lastIndex=0;do Or=O.test(c),Or===!0&&(ii=O.lastIndex-1,It++);while(Or===!0);It!==0&&(A=A+It,ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,ae,f))}this.handleModes(Ae,we,fe,C)}else{for(var gi=j,hr=A,fi=ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();nc.Lexer=nEe});var SA=w(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.tokenMatcher=Qi.createTokenInstance=Qi.EOF=Qi.createToken=Qi.hasTokenLabel=Qi.tokenName=Qi.tokenLabel=void 0;var Vs=Gt(),sEe=gd(),Sv=Gg();function oEe(r){return JY(r)?r.LABEL:r.name}Qi.tokenLabel=oEe;function aEe(r){return r.name}Qi.tokenName=aEe;function JY(r){return(0,Vs.isString)(r.LABEL)&&r.LABEL!==""}Qi.hasTokenLabel=JY;var AEe="parent",MY="categories",KY="label",UY="group",HY="push_mode",GY="pop_mode",YY="longer_alt",jY="line_breaks",qY="start_chars_hint";function WY(r){return lEe(r)}Qi.createToken=WY;function lEe(r){var e=r.pattern,t={};if(t.name=r.name,(0,Vs.isUndefined)(e)||(t.PATTERN=e),(0,Vs.has)(r,AEe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Vs.has)(r,MY)&&(t.CATEGORIES=r[MY]),(0,Sv.augmentTokenTypes)([t]),(0,Vs.has)(r,KY)&&(t.LABEL=r[KY]),(0,Vs.has)(r,UY)&&(t.GROUP=r[UY]),(0,Vs.has)(r,GY)&&(t.POP_MODE=r[GY]),(0,Vs.has)(r,HY)&&(t.PUSH_MODE=r[HY]),(0,Vs.has)(r,YY)&&(t.LONGER_ALT=r[YY]),(0,Vs.has)(r,jY)&&(t.LINE_BREAKS=r[jY]),(0,Vs.has)(r,qY)&&(t.START_CHARS_HINT=r[qY]),t}Qi.EOF=WY({name:"EOF",pattern:sEe.Lexer.NA});(0,Sv.augmentTokenTypes)([Qi.EOF]);function cEe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=cEe;function uEe(r,e){return(0,Sv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=uEe});var dn=w(Wt=>{"use strict";var wa=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var Ar=Gt(),gEe=SA(),vo=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=vo;var zY=function(r){wa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(vo);Wt.NonTerminal=zY;var VY=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Rule=VY;var XY=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Alternative=XY;var _Y=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Option=_Y;var ZY=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.RepetitionMandatory=ZY;var $Y=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.RepetitionMandatoryWithSeparator=$Y;var ej=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Repetition=ej;var tj=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.RepetitionWithSeparator=tj;var rj=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(vo);Wt.Alternation=rj;var WI=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=WI;function fEe(r){return(0,Ar.map)(r,hd)}Wt.serializeGrammar=fEe;function hd(r){function e(s){return(0,Ar.map)(s,hd)}if(r instanceof zY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof XY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof _Y)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof ZY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof $Y)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:hd(new WI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof tj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:hd(new WI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof ej)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof rj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof WI){var i={type:"Terminal",name:r.terminalType.name,label:(0,gEe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof VY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Wt.serializeProduction=hd});var VI=w(zI=>{"use strict";Object.defineProperty(zI,"__esModule",{value:!0});zI.RestWalker=void 0;var vv=Gt(),Cn=dn(),hEe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,vv.forEach)(e.definition,function(n,s){var o=(0,vv.drop)(e.definition,s+1);if(n instanceof Cn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof Cn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof Cn.Alternative)i.walkFlat(n,o,t);else if(n instanceof Cn.Option)i.walkOption(n,o,t);else if(n instanceof Cn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof Cn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof Cn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof Cn.Repetition)i.walkMany(n,o,t);else if(n instanceof Cn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new Cn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=ij(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new Cn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=ij(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,vv.forEach)(e.definition,function(o){var a=new Cn.Alternative({definition:[o]});n.walk(a,s)})},r}();zI.RestWalker=hEe;function ij(r,e,t){var i=[new Cn.Option({definition:[new Cn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Yg=w(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.GAstVisitor=void 0;var xo=dn(),pEe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case xo.NonTerminal:return this.visitNonTerminal(t);case xo.Alternative:return this.visitAlternative(t);case xo.Option:return this.visitOption(t);case xo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case xo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case xo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case xo.Repetition:return this.visitRepetition(t);case xo.Alternation:return this.visitAlternation(t);case xo.Terminal:return this.visitTerminal(t);case xo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();XI.GAstVisitor=pEe});var dd=w(Oi=>{"use strict";var dEe=Oi&&Oi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Oi,"__esModule",{value:!0});Oi.collectMethods=Oi.DslMethodsCollectorVisitor=Oi.getProductionDslName=Oi.isBranchingProd=Oi.isOptionalProd=Oi.isSequenceProd=void 0;var pd=Gt(),Qr=dn(),CEe=Yg();function mEe(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Oi.isSequenceProd=mEe;function xv(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,pd.some)(r.definition,function(i){return xv(i,e)}):r instanceof Qr.NonTerminal&&(0,pd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,pd.every)(r.definition,function(i){return xv(i,e)})):!1}Oi.isOptionalProd=xv;function EEe(r){return r instanceof Qr.Alternation}Oi.isBranchingProd=EEe;function IEe(r){if(r instanceof Qr.NonTerminal)return"SUBRULE";if(r instanceof Qr.Option)return"OPTION";if(r instanceof Qr.Alternation)return"OR";if(r instanceof Qr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Qr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Qr.Repetition)return"MANY";if(r instanceof Qr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Oi.getProductionDslName=IEe;var nj=function(r){dEe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,pd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,pd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CEe.GAstVisitor);Oi.DslMethodsCollectorVisitor=nj;var _I=new nj;function yEe(r){_I.reset(),r.accept(_I);var e=_I.dslMethods;return _I.reset(),e}Oi.collectMethods=yEe});var Dv=w(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.firstForTerminal=Po.firstForBranching=Po.firstForSequence=Po.first=void 0;var ZI=Gt(),sj=dn(),Pv=dd();function $I(r){if(r instanceof sj.NonTerminal)return $I(r.referencedRule);if(r instanceof sj.Terminal)return Aj(r);if((0,Pv.isSequenceProd)(r))return oj(r);if((0,Pv.isBranchingProd)(r))return aj(r);throw Error("non exhaustive match")}Po.first=$I;function oj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Pv.isOptionalProd)(s),e=e.concat($I(s)),i=i+1,n=t.length>i;return(0,ZI.uniq)(e)}Po.firstForSequence=oj;function aj(r){var e=(0,ZI.map)(r.definition,function(t){return $I(t)});return(0,ZI.uniq)((0,ZI.flatten)(e))}Po.firstForBranching=aj;function Aj(r){return[r.terminalType]}Po.firstForTerminal=Aj});var kv=w(ey=>{"use strict";Object.defineProperty(ey,"__esModule",{value:!0});ey.IN=void 0;ey.IN="_~IN~_"});var fj=w(As=>{"use strict";var wEe=As&&As.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(As,"__esModule",{value:!0});As.buildInProdFollowPrefix=As.buildBetweenProdsFollowPrefix=As.computeAllProdsFollows=As.ResyncFollowsWalker=void 0;var BEe=VI(),QEe=Dv(),lj=Gt(),cj=kv(),bEe=dn(),uj=function(r){wEe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=gj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bEe.Alternative({definition:o}),l=(0,QEe.first)(a);this.follows[s]=l},e}(BEe.RestWalker);As.ResyncFollowsWalker=uj;function SEe(r){var e={};return(0,lj.forEach)(r,function(t){var i=new uj(t).startWalking();(0,lj.assign)(e,i)}),e}As.computeAllProdsFollows=SEe;function gj(r,e){return r.name+e+cj.IN}As.buildBetweenProdsFollowPrefix=gj;function vEe(r){var e=r.terminalType.name;return e+r.idx+cj.IN}As.buildInProdFollowPrefix=vEe});var Cd=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.defaultGrammarValidatorErrorProvider=Ba.defaultGrammarResolverErrorProvider=Ba.defaultParserErrorProvider=void 0;var jg=SA(),xEe=Gt(),Xs=Gt(),Rv=dn(),hj=dd();Ba.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,jg.hasTokenLabel)(e),o=s?"--> "+(0,jg.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,Xs.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,Xs.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,Xs.map)(c,function(h){return"["+(0,Xs.map)(h,function(p){return(0,jg.tokenLabel)(p)}).join(", ")+"]"}),g=(0,Xs.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,Xs.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,Xs.map)(e,function(u){return"["+(0,Xs.map)(u,function(g){return(0,jg.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ba.defaultParserErrorProvider);Ba.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Ba.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Rv.Terminal?u.terminalType.name:u instanceof Rv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,Xs.first)(e),s=n.idx,o=(0,hj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,Xs.map)(r.prefixPath,function(n){return(0,jg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,Xs.map)(r.prefixPath,function(n){return(0,jg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,hj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=xEe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Rv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Cj=w(vA=>{"use strict";var PEe=vA&&vA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(vA,"__esModule",{value:!0});vA.GastRefResolverVisitor=vA.resolveGrammar=void 0;var DEe=Hn(),pj=Gt(),kEe=Yg();function REe(r,e){var t=new dj(r,e);return t.resolveRefs(),t.errors}vA.resolveGrammar=REe;var dj=function(r){PEe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,pj.forEach)((0,pj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:DEe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(kEe.GAstVisitor);vA.GastRefResolverVisitor=dj});var Ed=w(Nr=>{"use strict";var sc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var mj=VI(),Kt=Gt(),FEe=Dv(),kt=dn(),Ej=function(r){sc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(mj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Ej;var NEe=function(r){sc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FEe.first)(o),this.found=!0}},e}(Ej);Nr.NextAfterTokenWalker=NEe;var md=function(r){sc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(mj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=md;var LEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterManyWalker=LEe;var TEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterManySepWalker=TEe;var OEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterAtLeastOneWalker=OEe;var MEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterAtLeastOneSepWalker=MEe;function Ij(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Ij(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],O={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UEe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=KEe;function UEe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Id=w(_t=>{"use strict";var Bj=_t&&_t.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(_t,"__esModule",{value:!0});_t.areTokenCategoriesNotUsed=_t.isStrictPrefixOfPath=_t.containsPath=_t.getLookaheadPathsForOptionalProd=_t.getLookaheadPathsForOr=_t.lookAheadSequenceFromAlternatives=_t.buildSingleAlternativeLookaheadFunction=_t.buildAlternativesLookAheadFunc=_t.buildLookaheadFuncForOptionalProd=_t.buildLookaheadFuncForOr=_t.getProdType=_t.PROD_TYPE=void 0;var sr=Gt(),yj=Ed(),HEe=VI(),ty=Gg(),xA=dn(),GEe=Yg(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=_t.PROD_TYPE||(_t.PROD_TYPE={}));function YEe(r){if(r instanceof xA.Option)return oi.OPTION;if(r instanceof xA.Repetition)return oi.REPETITION;if(r instanceof xA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof xA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof xA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof xA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}_t.getProdType=YEe;function jEe(r,e,t,i,n,s){var o=bj(r,e,t),a=Lv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o,i,a,n)}_t.buildLookaheadFuncForOr=jEe;function qEe(r,e,t,i,n,s){var o=Sj(r,e,n,t),a=Lv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o[0],a,i)}_t.buildLookaheadFuncForOptionalProd=qEe;function JEe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Tv=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.checkPrefixAlternativesAmbiguities=zt.validateSomeNonEmptyLookaheadPath=zt.validateTooManyAlts=zt.RepetionCollector=zt.validateAmbiguousAlternationAlternatives=zt.validateEmptyOrAlternative=zt.getFirstNoneTerminal=zt.validateNoLeftRecursion=zt.validateRuleIsOverridden=zt.validateRuleDoesNotAlreadyExist=zt.OccurrenceValidationCollector=zt.identifyProductionForDuplicates=zt.validateGrammar=void 0;var er=Gt(),br=Gt(),Do=Hn(),Ov=dd(),qg=Id(),_Ee=Ed(),_s=dn(),Mv=Yg();function ZEe(r,e,t,i,n){var s=er.map(r,function(h){return $Ee(h,i)}),o=er.map(r,function(h){return Kv(h,h,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(h){return Rj(h,i)}),l=(0,br.map)(r,function(h){return Fj(h,e,i)}),c=Tj(r,e,i));var u=rIe(r,t,i),g=(0,br.map)(r,function(h){return Lj(h,i)}),f=(0,br.map)(r,function(h){return kj(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}zt.validateGrammar=ZEe;function $Ee(r,e){var t=new Dj;r.accept(t);var i=t.allProductions,n=er.groupBy(i,xj),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,Ov.getProductionDslName)(l),g={message:c,type:Do.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=Pj(l);return f&&(g.parameter=f),g});return o}function xj(r){return(0,Ov.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+Pj(r)}zt.identifyProductionForDuplicates=xj;function Pj(r){return r instanceof _s.Terminal?r.terminalType.name:r instanceof _s.NonTerminal?r.nonTerminalName:""}var Dj=function(r){Tv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(Mv.GAstVisitor);zt.OccurrenceValidationCollector=Dj;function kj(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:Do.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}zt.validateRuleDoesNotAlreadyExist=kj;function eIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:Do.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}zt.validateRuleIsOverridden=eIe;function Kv(r,e,t,i){i===void 0&&(i=[]);var n=[],s=yd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:Do.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),Kv(r,u,t,g)});return n.concat(er.flatten(c))}zt.validateNoLeftRecursion=Kv;function yd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof _s.NonTerminal)e.push(t.referencedRule);else if(t instanceof _s.Alternative||t instanceof _s.Option||t instanceof _s.RepetitionMandatory||t instanceof _s.RepetitionMandatoryWithSeparator||t instanceof _s.RepetitionWithSeparator||t instanceof _s.Repetition)e=e.concat(yd(t.definition));else if(t instanceof _s.Alternation)e=er.flatten(er.map(t.definition,function(o){return yd(o.definition)}));else if(!(t instanceof _s.Terminal))throw Error("non exhaustive match");var i=(0,Ov.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(yd(s))}else return e}zt.getFirstNoneTerminal=yd;var Uv=function(r){Tv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(Mv.GAstVisitor);function Rj(r,e){var t=new Uv;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,_Ee.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:Do.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}zt.validateEmptyOrAlternative=Rj;function Fj(r,e,t){var i=new Uv;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,qg.getLookaheadPathsForOr)(l,r,c,a),g=tIe(u,a,r,t),f=Oj(u,a,r,t);return o.concat(g,f)},[]);return s}zt.validateAmbiguousAlternationAlternatives=Fj;var Nj=function(r){Tv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(Mv.GAstVisitor);zt.RepetionCollector=Nj;function Lj(r,e){var t=new Uv;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:Do.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}zt.validateTooManyAlts=Lj;function Tj(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new Nj;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,qg.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,qg.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,br.isEmpty)((0,br.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:Do.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}zt.validateSomeNonEmptyLookaheadPath=Tj;function tIe(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(f,h){c!==h&&(0,qg.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,qg.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:Do.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function Oj(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});Jg.validateGrammar=Jg.resolveGrammar=void 0;var Gv=Gt(),iIe=Cj(),nIe=Hv(),Mj=Cd();function sIe(r){r=(0,Gv.defaults)(r,{errMsgProvider:Mj.defaultGrammarResolverErrorProvider});var e={};return(0,Gv.forEach)(r.rules,function(t){e[t.name]=t}),(0,iIe.resolveGrammar)(e,r.errMsgProvider)}Jg.resolveGrammar=sIe;function oIe(r){return r=(0,Gv.defaults)(r,{errMsgProvider:Mj.defaultGrammarValidatorErrorProvider}),(0,nIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}Jg.validateGrammar=oIe});var Wg=w(mn=>{"use strict";var wd=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.EarlyExitException=mn.NotAllInputParsedException=mn.NoViableAltException=mn.MismatchedTokenException=mn.isRecognitionException=void 0;var aIe=Gt(),Uj="MismatchedTokenException",Hj="NoViableAltException",Gj="EarlyExitException",Yj="NotAllInputParsedException",jj=[Uj,Hj,Gj,Yj];Object.freeze(jj);function AIe(r){return(0,aIe.contains)(jj,r.name)}mn.isRecognitionException=AIe;var ry=function(r){wd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lIe=function(r){wd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Uj,s}return e}(ry);mn.MismatchedTokenException=lIe;var cIe=function(r){wd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Hj,s}return e}(ry);mn.NoViableAltException=cIe;var uIe=function(r){wd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Yj,n}return e}(ry);mn.NotAllInputParsedException=uIe;var gIe=function(r){wd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Gj,s}return e}(ry);mn.EarlyExitException=gIe});var jv=w(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.attemptInRepetitionRecovery=Mi.Recoverable=Mi.InRuleRecoveryException=Mi.IN_RULE_RECOVERY_EXCEPTION=Mi.EOF_FOLLOW_KEY=void 0;var iy=SA(),ls=Gt(),fIe=Wg(),hIe=kv(),pIe=Hn();Mi.EOF_FOLLOW_KEY={};Mi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function Yv(r){this.name=Mi.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Mi.InRuleRecoveryException=Yv;Yv.prototype=Error.prototype;var dIe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,ls.has)(e,"recoveryEnabled")?e.recoveryEnabled:pIe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=qj)},r.prototype.getTokenToInsert=function(e){var t=(0,iy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new fIe.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,ls.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new Yv("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,ls.isEmpty)(t))return!1;var n=this.LA(1),s=(0,ls.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,ls.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,ls.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Mi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,ls.map)(t,function(n,s){return s===0?Mi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,ls.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,ls.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Mi.EOF_FOLLOW_KEY)return[iy.EOF];var t=e.ruleName+e.idxInCallingRule+hIe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,iy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,ls.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,ls.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,ls.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Mi.Recoverable=dIe;function qj(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=iy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Mi.attemptInRepetitionRecovery=qj});var ny=w(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.getKeyForAutomaticLookahead=qt.AT_LEAST_ONE_SEP_IDX=qt.MANY_SEP_IDX=qt.AT_LEAST_ONE_IDX=qt.MANY_IDX=qt.OPTION_IDX=qt.OR_IDX=qt.BITS_FOR_ALT_IDX=qt.BITS_FOR_RULE_IDX=qt.BITS_FOR_OCCURRENCE_IDX=qt.BITS_FOR_METHOD_TYPE=void 0;qt.BITS_FOR_METHOD_TYPE=4;qt.BITS_FOR_OCCURRENCE_IDX=8;qt.BITS_FOR_RULE_IDX=12;qt.BITS_FOR_ALT_IDX=8;qt.OR_IDX=1<{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.LooksAhead=void 0;var Qa=Id(),Zs=Gt(),Jj=Hn(),ba=ny(),oc=dd(),mIe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,Zs.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Jj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,Zs.has)(e,"maxLookahead")?e.maxLookahead:Jj.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,Zs.isES2015MapSupported)()?new Map:[],(0,Zs.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,Zs.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,oc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,Zs.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,oc.getProductionDslName)(g)+f,function(){var h=(0,Qa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,ba.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],ba.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,Zs.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,ba.MANY_IDX,Qa.PROD_TYPE.REPETITION,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,ba.OPTION_IDX,Qa.PROD_TYPE.OPTION,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,ba.AT_LEAST_ONE_IDX,Qa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,ba.AT_LEAST_ONE_SEP_IDX,Qa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,ba.MANY_SEP_IDX,Qa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,oc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Qa.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,ba.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Qa.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Qa.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,ba.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();sy.LooksAhead=mIe});var zj=w(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.addNoneTerminalToCst=ko.addTerminalToCst=ko.setNodeLocationFull=ko.setNodeLocationOnlyOffset=void 0;function EIe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(PA,"__esModule",{value:!0});PA.defineNameProp=PA.functionName=PA.classNameFromInstance=void 0;var BIe=Gt();function QIe(r){return Xj(r.constructor)}PA.classNameFromInstance=QIe;var Vj="name";function Xj(r){var e=r.name;return e||"anonymous"}PA.functionName=Xj;function bIe(r,e){var t=Object.getOwnPropertyDescriptor(r,Vj);return(0,BIe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,Vj,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}PA.defineNameProp=bIe});var tq=w(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.validateRedundantMethods=bi.validateMissingCstMethods=bi.validateVisitor=bi.CstVisitorDefinitionError=bi.createBaseVisitorConstructorWithDefaults=bi.createBaseSemanticVisitorConstructor=bi.defaultVisit=void 0;var cs=Gt(),Bd=qv();function _j(r,e){for(var t=(0,cs.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}bi.createBaseSemanticVisitorConstructor=SIe;function vIe(r,e,t){var i=function(){};(0,Bd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,cs.forEach)(e,function(s){n[s]=_j}),i.prototype=n,i.prototype.constructor=i,i}bi.createBaseVisitorConstructorWithDefaults=vIe;var Jv;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(Jv=bi.CstVisitorDefinitionError||(bi.CstVisitorDefinitionError={}));function Zj(r,e){var t=$j(r,e),i=eq(r,e);return t.concat(i)}bi.validateVisitor=Zj;function $j(r,e){var t=(0,cs.map)(e,function(i){if(!(0,cs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Bd.functionName)(r.constructor)+" CST Visitor.",type:Jv.MISSING_METHOD,methodName:i}});return(0,cs.compact)(t)}bi.validateMissingCstMethods=$j;var xIe=["constructor","visit","validateVisitor"];function eq(r,e){var t=[];for(var i in r)(0,cs.isFunction)(r[i])&&!(0,cs.contains)(xIe,i)&&!(0,cs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Bd.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:Jv.REDUNDANT_METHOD,methodName:i});return t}bi.validateRedundantMethods=eq});var iq=w(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.TreeBuilder=void 0;var zg=zj(),Zr=Gt(),rq=tq(),PIe=Hn(),DIe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Zr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:PIe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Zr.NOOP,this.cstFinallyStateUpdate=Zr.NOOP,this.cstPostTerminal=Zr.NOOP,this.cstPostNonTerminal=Zr.NOOP,this.cstPostRule=Zr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=zg.setNodeLocationFull,this.setNodeLocationFromNode=zg.setNodeLocationFull,this.cstPostRule=Zr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Zr.NOOP,this.setNodeLocationFromNode=Zr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=zg.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=zg.setNodeLocationOnlyOffset,this.cstPostRule=Zr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Zr.NOOP,this.setNodeLocationFromNode=Zr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Zr.NOOP,this.setNodeLocationFromNode=Zr.NOOP,this.cstPostRule=Zr.NOOP,this.setInitialNodeLocation=Zr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,zg.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,zg.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Zr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,rq.createBaseSemanticVisitorConstructor)(this.className,(0,Zr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Zr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,rq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Zr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();oy.TreeBuilder=DIe});var sq=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.LexerAdapter=void 0;var nq=Hn(),kIe=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):nq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?nq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();ay.LexerAdapter=kIe});var aq=w(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.RecognizerApi=void 0;var oq=Gt(),RIe=Wg(),Wv=Hn(),FIe=Cd(),NIe=Hv(),LIe=dn(),TIe=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Wv.DEFAULT_RULE_CONFIG),(0,oq.contains)(this.definedRulesNames,e)){var n=FIe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Wv.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Wv.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,NIe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,RIe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,LIe.serializeGrammar)((0,oq.values)(this.gastProductionsCache))},r}();Ay.RecognizerApi=TIe});var uq=w(cy=>{"use strict";Object.defineProperty(cy,"__esModule",{value:!0});cy.RecognizerEngine=void 0;var Pr=Gt(),Gn=ny(),ly=Wg(),Aq=Id(),Vg=Ed(),lq=Hn(),OIe=jv(),cq=SA(),Qd=Gg(),MIe=qv(),KIe=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,MIe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Qd.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Qd.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=cq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Qd.tokenStructuredMatcherNoCategories:Qd.tokenStructuredMatcher,(0,Qd.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:lq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:lq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ly.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,ly.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ly.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===OIe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),cq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();cy.RecognizerEngine=KIe});var fq=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.ErrorHandler=void 0;var zv=Wg(),Vv=Gt(),gq=Id(),UIe=Hn(),HIe=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,Vv.has)(e,"errorMessageProvider")?e.errorMessageProvider:UIe.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,zv.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,Vv.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,Vv.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,gq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new zv.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,gq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new zv.NoViableAltException(c,this.LA(1),l))},r}();uy.ErrorHandler=HIe});var dq=w(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.ContentAssist=void 0;var hq=Ed(),pq=Gt(),GIe=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,pq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,hq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,pq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new hq.NextAfterTokenWalker(n,e).startWalking();return s},r}();gy.ContentAssist=GIe});var Qq=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.GastRecorder=void 0;var En=Gt(),Ro=dn(),YIe=gd(),Iq=Gg(),yq=SA(),jIe=Hn(),qIe=ny(),hy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(hy);var Cq=!0,mq=Math.pow(2,qIe.BITS_FOR_OCCURRENCE_IDX)-1,wq=(0,yq.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:YIe.Lexer.NA});(0,Iq.augmentTokenTypes)([wq]);var Bq=(0,yq.createTokenInstance)(wq,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Bq);var JIe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},WIe=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return jIe.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Ro.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return bd.call(this,Ro.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){bd.call(this,Ro.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){bd.call(this,Ro.RepetitionMandatoryWithSeparator,t,e,Cq)},r.prototype.manyInternalRecord=function(e,t){bd.call(this,Ro.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){bd.call(this,Ro.RepetitionWithSeparator,t,e,Cq)},r.prototype.orInternalRecord=function(e,t){return zIe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(fy(t),!e||(0,En.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,En.peek)(this.recordingProdStack),o=e.ruleName,a=new Ro.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?JIe:hy},r.prototype.consumeInternalRecord=function(e,t,i){if(fy(t),!(0,Iq.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,En.peek)(this.recordingProdStack),o=new Ro.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),Bq},r}();py.GastRecorder=WIe;function bd(r,e,t,i){i===void 0&&(i=!1),fy(t);var n=(0,En.peek)(this.recordingProdStack),s=(0,En.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,En.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),hy}function zIe(r,e){var t=this;fy(e);var i=(0,En.peek)(this.recordingProdStack),n=(0,En.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Ro.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,En.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,En.some)(s,function(l){return(0,En.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,En.forEach)(s,function(l){var c=new Ro.Alternative({definition:[]});o.definition.push(c),(0,En.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,En.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),hy}function Eq(r){return r===0?"":""+r}function fy(r){if(r<0||r>mq){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(mq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var Sq=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.PerformanceTracer=void 0;var bq=Gt(),VIe=Hn(),XIe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,bq.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=VIe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,bq.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();dy.PerformanceTracer=XIe});var vq=w(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.applyMixins=void 0;function _Ie(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Cy.applyMixins=_Ie});var Hn=w(dr=>{"use strict";var Dq=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var Xi=Gt(),ZIe=fj(),xq=SA(),kq=Cd(),Pq=Kj(),$Ie=jv(),eye=Wj(),tye=iq(),rye=sq(),iye=aq(),nye=uq(),sye=fq(),oye=dq(),aye=Qq(),Aye=Sq(),lye=vq();dr.END_OF_FILE=(0,xq.createTokenInstance)(xq.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:kq.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cye;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cye=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function uye(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=uye;var my=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,Xi.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,Xi.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,Xi.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,Xi.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,Pq.resolveGrammar)({rules:(0,Xi.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,Xi.isEmpty)(n)&&e.skipValidations===!1){var s=(0,Pq.validateGrammar)({rules:(0,Xi.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,Xi.values)(e.tokensMap),errMsgProvider:kq.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,Xi.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,ZIe.computeAllProdsFollows)((0,Xi.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,Xi.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,Xi.isEmpty)(e.definitionErrors))throw t=(0,Xi.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=my;(0,lye.applyMixins)(my,[$Ie.Recoverable,eye.LooksAhead,tye.TreeBuilder,rye.LexerAdapter,nye.RecognizerEngine,iye.RecognizerApi,sye.ErrorHandler,oye.ContentAssist,aye.GastRecorder,Aye.PerformanceTracer]);var gye=function(r){Dq(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Xi.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(my);dr.CstParser=gye;var fye=function(r){Dq(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Xi.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(my);dr.EmbeddedActionsParser=fye});var Fq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.createSyntaxDiagramsCode=void 0;var Rq=pv();function hye(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+Rq.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+Rq.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` +